Pandas/xlsxwriter writer.close() 没有完全关闭excel文件

新手上路,请多包涵

在使用 python 脚本创建 excel 文件后,我试图手动修改它。不幸的是,如果脚本仍在运行,则在尝试以相同名称保存时会出现共享文件冲突错误消息。

一切都在代码中顺利运行。文件已创建、填充并保存。我可以打开它并对其进行处理,但如果脚本仍在运行,则无法以相同的名称覆盖它。

 outpath = filedialog.asksaveasfile(
    mode="wb",
    filetype=[("Excel", ("*.xls", "*.xlsx"))],
    defaultextension=".xlsx",
)
writer = pd.ExcelWriter(outpath, engine="xlsxwriter")
df1.to_excel(writer, sheet_name="Results")
writer.save()
writer.close()

我希望 python 完全关闭 excel 文件并让我在脚本仍在运行时覆盖它

原文由 Nicolas Peille 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.4k
2 个回答

您的代码看起来太复杂了,您不需要自己处理编写器 df.to_excel() 可以为您完成。只需使用更简单的代码: df1.to_excel(outpath, sheet_name="Results", engine='xlsxwriter') 按照 文档 中的建议。

原文由 alec_djinn 发布,翻译遵循 CC BY-SA 4.0 许可协议

我也有这个问题。尝试在 Excel 中保存更改时出现“共享冲突”。解决了在 writer.handles = None writer.close()

 writer = pd.ExcelWriter(workPath+'file.xlsx', engine='xlsxwriter')
# Add all your sheets and formatting here
...
# Save and release handle
writer.close()
writer.handles = None

原文由 CFreitas 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题