append pd.ExcelWriter得到了KeyError:'Sheet1'

时间:2019-01-31 05:13:47

标签: python

我正在尝试为Dataframe写一个excel附加函数,但是出现错误提示KeyError 'Sheet1'。我尝试删除

startrow = writer.sheets['Sheet1'].max_row

从writer函数的第一个语句开始。没有错误提示,但dfoutput_Financial的数据帧覆盖了先前的excel记录,并将其放在excel文件的1行中,并且dfoutput_PL被附加在excel文件的最大行中。 如何解决KeyError 'Sheet1'问题?

代码

writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
dfoutput_Financial.to_excel(writer, sheet_name='Sheet1', startrow = writer.sheets['Sheet1'].max_row, index=False, header= False)
dfoutput_PL.to_excel(writer, sheet_name='Sheet1', startrow = writer.sheets['Sheet1'].max_row, index=False, header= False)
writer.save()

1 个答案:

答案 0 :(得分:0)

您得到 Sheet1 的 KeyError,因为 writer.sheets 中不存在“Sheet1”。 要解决此问题,您必须在使用前加载工作簿。 像这样。

from openpyxl import load_workbook
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')

#Load Workbook
writer.book = load_workbook('test.xlsx')
writer.sheets =  {ws.title: ws for ws in writer.book.worksheets}
startrow = writer.sheets['Sheet1'].max_row

如果您仍然为“Sheet1”获得 KeyError,请检查它是否确实存在于 test.xlsx `