日付、重複変数の数など、さまざまな関数の出力を含むExcelファイルを作成する必要があります...最初の関数の出力を含むExcelファイルを作成できましたが、追加しようとすると2番目の関数の出力、それは機能しませんでした。異なる関数の出力を同じExcelファイルに追加する方法がわかりません。
例:function1:
import xlsxwriter
import openpyxl
import pandas as pd
def NGTP():
VIN_FFF = 0
N_Alert =0
for x in flat_list:
if "NGTPSM HTTP request" in str(x):
VIN_FFF+=1
N_Alert =5
workbook = xlsxwriter.Workbook('Results.xlsx')
worksheet = workbook.add_worksheet("sheet")
parametres = (
['VIN_FFF ', VIN_FFF],
['Nombre d alertes ', N_Alert],
)
# Start from the first cell. Rows and
# columns are zero indexed.
row = 0
col = 0
# Iterate over the data and write it out row by row.
for name, parametres in (parametres):
worksheet.write(row, col, name)
worksheet.write(row, col + 1, parametres)
row += 1
workbook.close()
function2:
import xlsxwriter
from openpyxl import load_workbook
from openpyxl import Workbook
import pandas as pd
filename = "Results.xlsx"
def Date2Roulage():
file_name='OutputDLT.xlsx'
df = pd.read_excel(file_name ,header=0, index= False)
d= df.iloc[0,2]
#d='2015-01-08 22:44:09'
date=pd.to_datetime(d).date()
date=list(date)
print('Date de roulage: ', date)
workbook = xlsxwriter.Workbook('Results.xlsx')
worksheet = workbook.add_worksheet("sheet")
parametres = (
['Date de roulage ', date],
)
# Start from the first cell. Rows and
# columns are zero indexed.
row = 2
col = 0
# Iterate over the data and write it out row by row.
for name, parametres in (parametres):
worksheet.write(row, col, name)
worksheet.write(row, col + 1, parametres)
row += 1
for row_ in parametres:
worksheet.append(row_)
workbook.save(filename)
workbook.close()
エラーは発生しませんが、同じファイルを2回同時に作成しようとしているため、機能していないと思います。
これは私のメインコードです:
from Date_de_roulage_Fct import *
from Navco_Fct import *
Date2Roulage()
Navco()
提案された解決策に従って、2番目の関数を更新しましたが、エラーが発生しました:
TypeError: 'datetime.date' object is not iterable
私はこの解決策を試しましたが、date=list(date)
うまくいきませんでした
を使用して既存のファイルに新しい行を追加することはできませんxlsxwriter
。あなたができることはopenpyxl
、ネイティブにこのオプションを持っている(あなたがインポートしたもの)を使うことです:
from openpyxl import Workbook
from openpyxl import load_workbook
filename = "Results.xlsx"
new_row = ['a', 'b', 'c']
# Confirm file exists.
# If not, create it, add headers, then append new data
try:
wb = load_workbook(filename)
ws = wb.worksheets[0] # select first worksheet
except FileNotFoundError:
# excel header if the file does not exists
headers_row = ['Header 1', 'Header 2', 'Header 3']
wb = Workbook()
ws = wb.active
ws.append(headers_row)
ws.append(new_row)
wb.save(filename)
使用しxlsxwriter
たい場合は、前のすべての行を読み取り、それらすべてを新しいデータで書き換えることができます。
入力については、次のようにする必要があります。
for row_ in parametres:
ws.append(row_)
wb.save(filename)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加