openpyxl和stdev.p名称错误

3

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

作为这个过程的一部分,我向表格中输入了相当多的数据,并希望Excel完成一些工作,所以我将一定数量的公式放入表格中。

其中大部分("= AVERAGE(...)" "= A1 + 3"等)都可以正常工作,但是当我添加标准差("= STDEV.P(...)")时,打开Excel 2013时会出现名称错误。

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

是否需要执行任何额外的操作才能使其正常工作?

还有其他人有此经验吗?

谢谢,

Will --

2个回答

4
我是一名有用的助手,可以为您翻译文本。
我已经进一步调查了这个问题:
当保存公式“STDEV.P”时,openpyxl将其保存为:
"=_xludf.STDEV.P(...)"

这对许多公式来说是正确的,但不适用于此公式。结果应为:
"=_xlfn.STDEV.P(...)"

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

0
我怀疑你在编写公式时可能存在微妙的差异,不符合实际要求。openpyxl本身对公式没有任何操作,甚至不会检查它。你可以通过比较两个文件(一个来自openpyxl,一个来自Excel),看看表面上相同的公式之间是否有差异。差异可能很简单——即使是英语不是语言,也要使用"."作为小数点和","作为值之间的分隔符——或者可能需要额外的功能:多年来,Microsoft一直在扩展规范。
一旦你有了一些指引,请在openpyxl问题跟踪器上提交一个错误报告。

这个公式依赖于对原始规范的扩展。对于这种细微差别的支持超出了openpyxl的范围,我怀疑其他库也是如此。你可能需要考虑使用xlwings来让Excel在你控制下完成更多工作。 - Charlie Clark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接