我有以下代码,我正在尝试将数据框写入 Excel 文件的“现有”工作表(此处称为 test.xlsx)。 Sheet3 是我想要放置数据的目标工作表,并且我不想用新工作表替换整个工作表。
df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})
book = load_workbook('test.xlsx')
writer = pd.ExcelWriter('test.xlsx')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets) # *I am not sure what is happening in this line*
df.to_excel(writer,"Sheet3",startcol=0, startrow=20)
当我逐行运行代码时,我在最后一行收到此错误:
AttributeError:“Workbook”对象没有属性“add_worksheet”。现在,当我不尝试添加工作表时,为什么会看到此错误?
注意:我知道这个类似的问题Python 如何使用 ExcelWriter 写入现有工作表但它对我不起作用,我也无法评论该帖子。
您可以使用append_df_to_excel()
辅助函数,即在这个答案中定义:
Usage:
append_df_to_excel('test.xlsx', df, sheet_name="Sheet3", startcol=0, startrow=20)
一些细节:
**to_excel_kwargs
- 用于通过额外的named参数为df.to_excel()
就像我在上面的例子中所做的那样 - 参数startcol
未知append_df_to_excel()
所以它将被视为一部分**to_excel_kwargs
参数(字典)。
writer.sheets = {ws.title:ws for ws in writer.book.worksheets}
用于将现有工作表复制到writer
openpyxl 对象。我无法解释为什么阅读时没有自动完成writer = pd.ExcelWriter(filename, engine='openpyxl')
- 你应该询问作者openpyxl
模块关于...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)