我正在尝试为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()
答案 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
`