【发布时间】:2018-08-31 00:21:50
【问题描述】:
我目前有一个 excel 文件,例如 3 张纸。我想根据来自 2 个 pandas 数据框(每张表 1 个数据框)的新值更改其中 2 张工作表。
这是我目前拥有的代码:
from openpyxl.writer.excel import ExcelWriter
from openpyxl import load_workbook
path = r"Libraries\Documents\Current_Standings.xlsx"
book = load_workbook('Current_Standings.xlsx')
writer = pd.ExcelWriter(path, 'Current_Standings.xlsx',
engine='openpyxl')
writer.book = writer
Blank_Propensity_Scores.to_excel(writer, sheet_name =
'Blank_Propensity.xlsx')
Leads_by_Rep.to_excel(writer,sheet_name = 'Leads_by_Rep.xlsx')
writer.save()
当我运行它时,我收到以下错误消息,不知道为什么,因为我查看的每个堆栈溢出答案都只有一项用于 openpyxl:
TypeError: __new__() got multiple values for argument 'engine'
我也尝试过摆脱 engine='openpyxl' 参数,但是当我这样做时,我收到了以下错误消息:
ValueError: No Excel writer 'Current_Standings.xlsx'
【问题讨论】:
-
@piRSquared 任何关于stackoverflow的python天才的帮助将不胜感激:)
-
在查看了我的回复后,我认为问题是另一个问题,所以我将其删除。困惑在于“pd”。在调用 ExcelWriter 之前。我认为您使用的是 pandas 的 ExcelWriter。我仍在考虑解决方案。
-
@Parfait:我取消了我的回复。删除的原因之一是因为在我的本地测试中,我在编写第一个工作表时收到此错误:AttributeError: '_Openpyxl22Writer' object has no attribute 'create_sheet'。
-
@Parfait:你是对的。但在这种具体情况下,变量“路径”已经具有文件名。谢谢你的建议。
-
我在另一篇博文中找到了可行的解决方案
标签: python python-3.x pandas openpyxl pandas.excelwriter