目前,我将数据帧写入存在的xlsx文件中,并且一切正常。 不过,我想写一个xlsm文件,因为它更方便(在我可以打开xlsx文件并运行宏之后)。
我该怎么做?
这是我写到xlsx文件中的代码。
def append_df_to_excel(filename, df, sheet_name, startrow=None,
truncate_sheet=False,
**to_excel_kwargs):
from openpyxl import load_workbook
writer = pd.ExcelWriter(filename, engine='openpyxl')
try:
# try to open an existing workbook
writer.book = load_workbook(filename)
# get the last row in the existing Excel sheet
# if it was not specified explicitly
if startrow is None and sheet_name in writer.book.sheetnames:
startrow = writer.book[sheet_name].max_row
# truncate sheet
if truncate_sheet and sheet_name in writer.book.sheetnames:
# index of [sheet_name] sheet
idx = writer.book.sheetnames.index(sheet_name)
# remove [sheet_name]
writer.book.remove(writer.book.worksheets[idx])
# create an empty sheet [sheet_name] using old index
writer.book.create_sheet(sheet_name, idx)
# copy existing sheets
writer.sheets = {ws.title:ws for ws in writer.book.worksheets}
except FileNotFoundError:
# file does not exist yet, we will create it
pass
if startrow is None:
startrow = 0
# write out the new sheet
df.to_excel(writer, sheet_name, startrow=startrow, **to_excel_kwargs)
# save the workbook
writer.save()
当我简单地做
def append_df_to_excel("name.xlsx", df)
它可以工作,但是当我改变并做
def append_df_to_excel("name.xlsx", df)
它不起作用。
答案 0 :(得分:0)
您可以在pandas to_excel函数中指定python写入模式。对于后缀是'a'。因此在您的情况下:
with pd.ExcelWriter('output.xlsx',mode='a') as writer:
df.to_excel(writer, sheet_name='Sheet_name_3')