我有一段时间以前写的代码,现在要重新使用它来完成一个新任务。任务是将一个新的DataFrame写入一个现有的Excel文件中的一个新工作表。但是有一部分代码我不太理解,但它确实让代码“正常运行”。
可行:
from openpyxl import load_workbook
import pandas as pd
file = r'YOUR_PATH_TO_EXCEL_HERE'
df1 = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})
book = load_workbook(file)
writer = pd.ExcelWriter(file, engine='openpyxl')
writer.book = book # <---------------------------- piece i do not understand
df1.to_excel(writer, sheet_name='New', index=None)
writer.save()
这行代码
writer.book=book
让我感到困惑。如果没有这行代码,Excel 文件将删除除在 df1.to_excel
的 sheetname=
参数中使用的工作表之外的所有其他工作表。
我查看了 xlsxwriter
和 openpyxl
的文档,但似乎无法弄清楚为什么那行代码会给我期望的输出。有什么想法吗?
编辑:我相信 这篇帖子 是我最初得到这个想法的地方。