Excel 输出损坏:Openpyxl 公式设置?

pat*_*ick 2 python excel pandas openpyxl

我正在使用 pandas DataFrames 创建一些 Excel 电子表格pandas.ExcelWriter()

问题:

  • 对于某些字符串输入,这会创建需要修复的损坏的 .xlsx 文件。(某些内容存在问题---删除了公式,请参见下面的错误消息)

  • 我认为发生这种情况是因为 Excel 不会将单元格内容解释为字符串,而是将其解释为无法解析的公式,例如当字符串值以“=”开头时

问题:

  • 当使用 xlsxwriter 作为引擎时,我可以通过设置参数来解决这个问题options = {"strings_to_formulas" : False }

  • openpyxl 有类似的论点吗?

故障排除:

  • 我找到了data_onlyWorkbook 的参数,但它似乎只适用于读取文件/我无法让它与 ExcelWriter() 一起使用。

  • 并非所有输出值都是字符串/我想避免将所有输出转换为 str

  • 在这里找不到适用的问题

非常感谢任何提示,谢谢!


错误信息:

我们发现“file.xlsx”中的某些内容存在问题。您希望我们尽力恢复吗?如果您信任此工作簿的来源,请单击“是”

打开后日志显示:

[...] 摘要=“以下是已删除记录的列表:”>已删除记录:/xl/worksheets/sheet1.xml 部分中的公式 [...]

代码

import pandas
excelout = pandas.ExcelWriter(output_file, engine = "openpyxl")
df.to_excel(excelout)
excelout.save()
Run Code Online (Sandbox Code Playgroud)

版本:

熊猫@0.24.2 openpyxl @2.5.6

Excel 2016 for Mac(但在 Win 上复制)

小智 7

我也曾为这个问题苦苦挣扎。我发现了一个奇怪的公式解决方案。我必须将公式中的所有;(分号)符号替换为(逗号)。,当我用Excel打开结果xlsx文件时,这个错误没有出现,Excel中的公式也正常;