<ValueError: Sheet already exists and if_sheet_exists is set to 'error'> on one machine but not on another
<ValueError: Sheet already exists and if_sheet_exists is set to 'error'> on one machine but not on another
我是 运行 一些基本的 python 代码,它生成一个名为 df 的 pandas DataFrame,然后使用 [= 将其写入预先格式化的 Excel 文件25=] ExcelWriter 和 openpyxl 作为引擎。
workbook = load_workbook('example.xlsx')
sheet = workbook['example_sheet']
writer = pd.ExcelWriter('example.xlsx', engine='openpyxl', mode='a')
writer.book = workbook
writer.sheets = {ws.title: ws for ws in writer.book.worksheets}
sheet.cell(row=8, column=5).value = some.value
df.to_excel(writer, sheet_name='example_sheet', index=False, header=False, startrow=10, startcol=5)
奇怪的是,当 运行 在我的机器上它运行完美,但是在我同事的机器上它抛出提到的错误:
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\excel\_openpyxl.py", line 437, in write_cells f"Sheet '{sheet_name}' already exists and " ValueError: Sheet 'example_sheet' already exists and if_sheet_exists is set to 'error'.
我已经尝试通过显式设置来解决它
if_sheet_exists = 'replace'
但是现在(正如预期的那样)它替换了整个 sheet 并破坏了之前应用的格式。但是,当 运行 在我的机器上时,它不会替换 sheet,即使作者已设置为这样做。
我不完全确定在哪里寻找机器的差异,所以如果有人能给我一个想法,我将非常感激。
最后一个 Pandas 表现如您所愿的版本是 1.2.5 版。 pip uninstall pandas
然后是 pip install pandas==1.2.5
,然后它会简单地将数据附加到您之前格式化的 Excel 模板。
YMMV.
我是 运行 一些基本的 python 代码,它生成一个名为 df 的 pandas DataFrame,然后使用 [= 将其写入预先格式化的 Excel 文件25=] ExcelWriter 和 openpyxl 作为引擎。
workbook = load_workbook('example.xlsx')
sheet = workbook['example_sheet']
writer = pd.ExcelWriter('example.xlsx', engine='openpyxl', mode='a')
writer.book = workbook
writer.sheets = {ws.title: ws for ws in writer.book.worksheets}
sheet.cell(row=8, column=5).value = some.value
df.to_excel(writer, sheet_name='example_sheet', index=False, header=False, startrow=10, startcol=5)
奇怪的是,当 运行 在我的机器上它运行完美,但是在我同事的机器上它抛出提到的错误:
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\excel\_openpyxl.py", line 437, in write_cells f"Sheet '{sheet_name}' already exists and " ValueError: Sheet 'example_sheet' already exists and if_sheet_exists is set to 'error'.
我已经尝试通过显式设置来解决它
if_sheet_exists = 'replace'
但是现在(正如预期的那样)它替换了整个 sheet 并破坏了之前应用的格式。但是,当 运行 在我的机器上时,它不会替换 sheet,即使作者已设置为这样做。
我不完全确定在哪里寻找机器的差异,所以如果有人能给我一个想法,我将非常感激。
最后一个 Pandas 表现如您所愿的版本是 1.2.5 版。 pip uninstall pandas
然后是 pip install pandas==1.2.5
,然后它会简单地将数据附加到您之前格式化的 Excel 模板。
YMMV.