我有一个脚本来格式化一堆数据,然后将其推送到excel,我可以轻松地清理损坏的数据,并进行更多的分析。
作为其中的一部分,我正在推动相当多的数据,并希望excel做一些腿部工作,所以我将一定数量的公式放入工作表。
其中大部分(“= AVERAGE(...)”“= A1 + 3”等)工作得非常好,但当我添加标准差(“= STDEV.P(...)”时,我得到一个我在excel 2013中打开时出现名称错误。
如果我点击excel中的单元格并点击(即不更改单元格内的任何内容),单元格会重新计算而不会出现名称错误,所以我有点困惑。
为了让它发挥作用,还有什么需要做的吗?
还有其他人有过这方面的经验吗?
谢谢,
威尔 -
答案 0 :(得分:4)
我进一步调查了这个问题:
保存公式" STDEV.P" openpyxl将其保存为:
"=_xludf.STDEV.P(...)"
对于许多公式来说都是正确的,但不是这个公式。 结果应该是:
"=_xlfn.STDEV.P(...)"
当我明确地将函数更改为后者时,它按预期工作。 我将提交错误报告,希望将来会自动完成。
答案 1 :(得分:0)
我怀疑您认为需要编写的公式和实际需要的内容可能存在细微差别。 openpyxl本身对公式没有任何作用,甚至没有检查它。您可以通过比较两个文件(一个来自openpyxl,一个来自Excel)和表面上相同的公式来研究这一点。差异可能很简单 - 使用“。”对于小数和“,”作为值之间的分隔符,即使英语不是语言 - 或者可能需要额外的功能:Microsoft多年来一直在扩展规范。
如果您有一些指示,请在openpyxl问题跟踪器上提交错误报告。