gpt4 book ai didi

python - Excel 删除了 Pandas 设置的公式,但手动设置公式会使公式生效

转载 作者:行者123 更新时间:2023-12-04 22:18:35 25 4
gpt4 key购买 nike

在检查 this post 并看到没有响应后,我打开了这个。
我正在尝试通过 Python 中的 Pandas 在 Excel 单元格中设置公式。到目前为止,它通过将公式指定为文本来工作,但使用新公式时我遇到了问题:

=FILTER(SHEET1!A2:I456,(IF(SHEET2!D9=0,SHEET1!D2:D456>SHEET2!D9,SHEET1!D2:D456>=SHEET2!D9)),"No data")
(在python代码中,空分支的“被指定为\”)
如果我在代码执行后打开 Excel 文件,Excel 会提示有问题,我必须接受“恢复”,显示公式已被删除,单元格显示 0。
之后,如果我在同一个单元格中手动输入相同的公式(用“而不是\”),它会起作用并显示信息。
我试图用 $ ($A$2) 指定单元格但没有成功...我还检查了 Excel 选项,并且公式设置为在“自动”中进行评估。
问题是什么?
问候。

最佳答案

经过更多研究,我发现了问题所在。我正在使用 OFFICE 365,以防它可能会影响此答案。
让我抓狂的是 Excel 中的手写公式有效。我有一个解决方法,包括将公式的内容作为不带 = 符号的文本放置,以便 Excel 不会将其解释为公式。打开 Excel,转到该单元格,手动输入 =,当我​​按 Enter 时,显示数据。
由于我在西类牙语中使用 EXCEL,但使用 Pandas,您必须用英文符号编写所有内容,我想当我手动输入 = 并且公式有效时,我会看到 Excel 在内部做了什么。我所做的是:

  • 更改文件扩展名 .xlsx.zip .
  • 打开 zip 并转到路径:xl/worksheets/sheet[number].xml .
  • 找到公式字段,寻找 <f></f> .

  • 那时我注意到内容,而不是从以下内容开始:
    FILTER(....)
    我发现:
    _xlfn._xlws.FILTER(....)
    所以在PANDAS代码中我改变了:
    cell_formula = f"=FILTER(...)"
    经过:
    cell_formula = f"=_xlfn._xlws.FILTER(...)"
    接着:
    workbook = pandas_writer.book
    worksheet = workbook.sheetnames[sheet_name]
    worksheet.write_array_formula("A2:Y109", "{" + cell_formula + "}")
    workbook.close()
    现在,当我打开 Excel 时,我没有收到错误,公式显示了结果。然后,查看 XlsxWriter documentation 的这一部分在 Microsoft documentation这个功能没有出现。
    因此,如果您遇到这种情况,请手动修复函数,保存更改并检查 EXCEL 生成的内部 XML。

    关于python - Excel 删除了 Pandas 设置的公式,但手动设置公式会使公式生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66546250/

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