gpt4 book ai didi

python - 在 pandas 中使用 openpyxl 编写时损坏的工作簿

转载 作者:行者123 更新时间:2023-12-04 20:49:02 25 4
gpt4 key购买 nike

我写了下面的代码来使用 Pandas 写入工作簿。想法是如果已经存在同名的工作簿,则向工作簿添加一个新工作表,否则创建一个新工作簿。

import pandas as pd
from pathlib import Path
from openpyxl import load_workbook

xls = pd.ExcelFile("test.xlsx")
df = pd.read_excel(xls, "Sheet1")

op_name = "op.xlsx"
my_file = Path(op_name)
if my_file.exists():
book = load_workbook(my_file)
writer = pd.ExcelWriter(op_name, engine='openpyxl', mode='a')
writer.book = book
df.to_excel(writer, sheet_name="r2")
else:
writer = pd.ExcelWriter(op_name, engine='openpyxl')
df.to_excel(writer, sheet_name="r1")
writer.save()
writer.close()
但是,打开输出工作簿时出现以下错误:

We found a problem with some content in 'op.xlsx'. Do you want us to try and recover as much as we can?


我尝试了此代码的多种变体,但没有任何效果。
任何有关如何解决此问题的建议将不胜感激。

最佳答案

嗨,如果 pandas 版本 >= 1.2,您使用的 pandas 版本是什么?此错误发生在 GitHub 中的此错误报告中所述.将您的 pandas 版本降低到 1.1.5,或者如果您特别使用这个较新版本,请编辑库 python 文件,如下所示。
在 pandas/io/excel/_openpyxl.py 添加以下几行

self.handles.handle.seek(0)
self.handles.handle.truncate()
在这条线以下
self.book = load_workbook(self.handles.handle)
此修复仅适用于 pandas >= 1.2 库。

关于python - 在 pandas 中使用 openpyxl 编写时损坏的工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69337552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com