Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python openpyxl和stdev.p名称错误_Python_Openpyxl - Fatal编程技术网

Python openpyxl和stdev.p名称错误

Python openpyxl和stdev.p名称错误,python,openpyxl,Python,Openpyxl,我有一个脚本来格式化一堆数据,然后将其推送到excel中,在那里我可以轻松地清除损坏的数据,并进行更多的分析 作为这项工作的一部分,我将大量数据推送到excel,并希望excel做一些腿部工作,因此我将一定数量的公式放入表格中 其中大多数(“=AVERAGE(…)”“=A1+3”等)都工作得非常好,但当我添加标准偏差(“=STDEV.p(…)”时,在excel 2013中打开时出现了一个名称错误 如果我在excel中的单元格中单击并点击(即,不更改单元格中的任何内容),该单元格将重新计算,而不会

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

作为这项工作的一部分,我将大量数据推送到excel,并希望excel做一些腿部工作,因此我将一定数量的公式放入表格中

其中大多数(“=AVERAGE(…)”“=A1+3”等)都工作得非常好,但当我添加标准偏差(“=STDEV.p(…)”时,在excel 2013中打开时出现了一个名称错误

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

要让它正常工作,还需要做些什么吗

还有其他人有过这样的经历吗

谢谢

意志
--

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


一旦有了一些提示,请在openpyxl问题跟踪器上提交错误报告。

我已经做了进一步的调查,这就是问题:

保存公式“STDEV.p”时,openpyxl将其保存为:

"=_xludf.STDEV.P(...)"
这对很多公式都是正确的,但不是这个。 结果应该是:

"=_xlfn.STDEV.P(...)"
当我显式地将函数更改为后者时,它会按预期工作。
我将提交一份错误报告,希望将来能自动完成。

此公式取决于对原始规范的扩展。openpyxl不支持这种细微差别,我怀疑还有其他库。您可能希望在控制它的同时,使用xlwings让Excel做更多的工作。