sin*_*047 4 excel pandas openpyxl
我有以下代码,我正在尝试将数据框写入 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)
Run Code Online (Sandbox Code Playgroud)
当我逐行运行代码时,最后一行出现此错误:
AttributeError: 'Workbook' 对象没有属性 'add_worksheet'。现在为什么当我不尝试添加工作表时会看到此错误?
注意:我知道这个类似的问题Python How to use ExcelWriter to write into an existing worksheet但它对我不起作用,我也无法评论该帖子。
您可以使用此答案中定义的append_df_to_excel()辅助函数:
用法:
append_df_to_excel('test.xlsx', df, sheet_name="Sheet3", startcol=0, startrow=20)
Run Code Online (Sandbox Code Playgroud)
一些细节:
**to_excel_kwargs- 用于传递额外的命名参数,df.to_excel()就像我在上面的例子中所做的那样 - 参数startcol未知,append_df_to_excel()因此它将被视为**to_excel_kwargs参数(字典)的一部分。
writer.sheets = {ws.title:ws for ws in writer.book.worksheets}用于将现有工作表复制到writeropenpyxl 对象。我无法解释为什么在阅读时它没有自动完成writer = pd.ExcelWriter(filename, engine='openpyxl')- 你应该向openpyxl模块的作者询问这个......
| 归档时间: |
|
| 查看次数: |
22840 次 |
| 最近记录: |