Pandas ExcelWriter Openpyxl 附加模式损坏 Excel 文件

发布于 2025-01-11 12:16:47 字数 899 浏览 0 评论 0原文

使用 pandas excelwriter 附加模式(engine=openpyxl)会损坏我的 Excel 文件。

我已经通读了此问题的先前版本,并且可以确认在我的 pandas/openpyxl 版本中该文件

self.handles.handle.seek(0)
self.handles.handle.truncate()

位于文件中。这是我的代码,它将一些数据添加到现有的 Excel 工作表中:

file_name = 'AA Tracker.xlsx'
writer = pd.ExcelWriter(file_name,engine='openpyxl',if_sheet_exists='overlay', mode='a')
dfq.to_excel(writer,sheet_name=ticker,startrow=startrow , startcol=0)

writer.save()
writer.close()

虽然这会产生所需的结果,但 Excel 文件会损坏:

在此处输入图像描述

该文件无法在 Excel 365 中打开,但不知何故在 Excel 中2016年我可以修复文件并看到结果是我所期望的。奇怪的是,当我修复后保存此文件时,它提示我保存旧文件而不是简单保存,不确定这是否是一个线索......

无论如何,这必须在 365 中工作,有什么想法吗?

我的包版本:

pandas 1.4.1
openpyxl 3.0.9
python 3.9.7

Using pandas excelwriter append mode (engine=openpyxl) corrupts my excel file.

I've read through prior versions of this issue, and can confirm that in my version of pandas/openpyxl

self.handles.handle.seek(0)
self.handles.handle.truncate()

is in the file. Here is my code, which adds some data to an existing excel sheet:

file_name = 'AA Tracker.xlsx'
writer = pd.ExcelWriter(file_name,engine='openpyxl',if_sheet_exists='overlay', mode='a')
dfq.to_excel(writer,sheet_name=ticker,startrow=startrow , startcol=0)

writer.save()
writer.close()

While this produces the desired result, the excel file gets corrupted:

enter image description here

The file is not able to be opened in Excel 365, but somehow in Excel 2016 I can repair the file and see that the result is what I expect. Oddly when I save this file after repair, it prompts me to save over the old file instead of simply saving, not sure if that's a clue...

In any case, this must work in 365, any ideas?

My package versions:

pandas 1.4.1
openpyxl 3.0.9
python 3.9.7

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文