openpyxl和stdev.p名称错误

时间:2015-04-07 08:01:55

标签: python openpyxl

我有一个脚本来格式化一堆数据,然后将其推送到excel,我可以轻松地清理损坏的数据,并进行更多的分析。

作为其中的一部分,我正在推动相当多的数据,并希望excel做一些腿部工作,所以我将一定数量的公式放入工作表。

其中大部分(“= AVERAGE(...)”“= A1 + 3”等)工作得非常好,但当我添加标准差(“= STDEV.P(...)”时,我得到一个我在excel 2013中打开时出现名称错误。

如果我点击excel中的单元格并点击(即不更改单元格内的任何内容),单元格会重新计算而不会出现名称错误,所以我有点困惑。

为了让它发挥作用,还有什么需要做的吗?

还有其他人有过这方面的经验吗?

谢谢,

威尔    -

2 个答案:

答案 0 :(得分:4)

我进一步调查了这个问题:

保存公式" STDEV.P" openpyxl将其保存为:

"=_xludf.STDEV.P(...)"

对于许多公式来说都是正确的,但不是这个公式。 结果应该是:

"=_xlfn.STDEV.P(...)"

当我明确地将函数更改为后者时,它按预期工作。 我将提交错误报告,希望将来会自动完成。

答案 1 :(得分:0)

我怀疑您认为需要编写的公式和实际需要的内容可能存在细微差别。 openpyxl本身对公式没有任何作用,甚至没有检查它。您可以通过比较两个文件(一个来自openpyxl,一个来自Excel)和表面上相同的公式来研究这一点。差异可能很简单 - 使用“。”对于小数和“,”作为值之间的分隔符,即使英语不是语言 - 或者可能需要额外的功能:Microsoft多年来一直在扩展规范。

如果您有一些指示,请在openpyxl问题跟踪器上提交错误报告。