【发布时间】:2018-09-06 06:20:57
【问题描述】:
我有以下代码,我正在尝试将数据框写入 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:“工作簿”对象没有属性“add_worksheet”。现在,当我不尝试添加工作表时,为什么会看到此错误?
注意:我知道Python How to use ExcelWriter to write into an existing worksheet 有类似的问题,但它对我不起作用,我也无法评论该帖子。
【问题讨论】:
-
这很可能是由于您不知道发生了什么的代码。为什么你需要那个?
-
我们需要 book 和 sheet 属性来添加工作表或保存到 Excel。 'writer.book = book' 将 load_book 的结果设置为 writer 的 book 属性,以便您可以对其进行操作。 'writer.sheets = dict((ws.title, ws) for ws in book.worksheets)' - 此行生成 sheet 属性。我认为这是必要的,以便我们可以编辑目标工作表。
-
您试过一次循环一张纸吗?我过去成功地做到了这一点
-
我没有。你打算怎么做?我对 python 很陌生——如果你能用一些有用的代码来详细说明一下
-
Pandas 默认使用 xlsxwriter。您需要明确将引擎设置为 openpyxl。