Excel 删除 Python 插入的有效公式

Excel removing valid formula inserted by Python

我正在尝试使用 openpyxl 在 Python 中生成 excel xlsx 报告,但是有一个问题。 Excel 不断从我的 sheet 的几个特定单元格中删除公式。

我打印了正在插入的内容,它看起来绝对有效,如果我将它从控制台粘贴到单元格,它会显示准确的结果。我什至尝试插入没有前导 '=' 的公式,当我在 excel 中打开它并添加 '=' 时,它成功了。

这是给定的公式,只是以匹配行中的某个其他值为条件的单元格总和:

=SUMIF($C$27:$C$243;A249;$I$27:$I$243)

打开工作簿报错如下:

当我没有在那个特定的单元格中插入任何东西时,一切都会顺利打开,没有警告。但是,当我手动插入它时,excel 显示警告 说带有公式的单元格不受保护。不确定这是否应该成为一个问题。 我无法完全理解它。 Excel 错误日志一如既往地有用。

请注意文档中的警告:http://openpyxl.readthedocs.io/en/default/usage.html#using-formulae

NB you must use the English name for a function and function arguments must be separated by commas and not other punctuation such as semi-colons.

您可以使用下面的语法来更新 excel 中的公式,或者在字符串前面使用 r,它可以避免您在公式中使用反斜杠

我测试过了,工作得很好:

formula = r'=CONCATENATE($N,"=",N3,";", $O,"=",O3,";", $P,"=",P3,";", $Q,"=",Q3,";", $R,"=",R3,";",$S,"=",S3,";",$T,"=",T3,";", $U,"=",U3,";")'

test_case_sheet.cell(row=row_index, column=header_col_map_dict['TestDataKey']).value = formula