2015-04-07 84 views
3

我有一個腳本來格式化一堆數據,然後將其推送到excel,在那裏我可以輕鬆地擦洗破損的數據,並做更多的分析。openpyxl和stdev.p名稱錯誤

作爲這個的一部分,我推送了大量的數據來優化,並希望excel做一些legwork,所以我把一定數量的公式放到表單中。 (「= AVERAGE(...)」「= A1 + 3」等)工作絕對好,但當我加上標準偏差(「= STDEV.P(...)」我得到當我在Excel 2013中打開時出現名稱錯誤。

如果我點擊excel中的單元格並命中(即不更改單元格內的任何內容),單元格將重新計算而不會出現名稱錯誤,所以我有點糊塗了。

是否有任何額外的東西,需要做才能得到這個工作?

任何人都有這樣的經驗嗎?

謝謝,

威爾 -

回答

0

我懷疑有可能是你在想什麼,你需要寫的公式和實際需要的是一個微妙的差異。 openpyxl本身對公式沒有任何作用,甚至不檢查它。您可以通過比較兩個文件(一個來自openpyxl,一個來自Excel)來調查這個表面上看似相同的公式。差異可能很簡單 - 使用「。」對於小數和「,」作爲值之間的分隔符,即使英語不是語言 - 或者可能需要額外的功能:Microsoft多年來一直在繼續擴展規範。

一旦你有一些指針,請提交一個關於openpyxl問題跟蹤器的錯誤報告。

+0

非常感謝您的建議。我將添加錯誤報告。 – will

+0

該公式取決於對原始規範的擴展。對這種差異的支持超出了openpyxl的範圍,我懷疑其他庫。您可能希望查看使用xlwings讓Excel在控制它時執行更多工作。 –

2

我進一步調查,這是問題:

當保存openpyxl將其保存爲公式「STDEV.P」:

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

這是正確的許多公式,但不是這個一。 結果應該是:

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

當我明確地改變功能後,它按預期工作。 我會提交一份錯誤報告,希望將來可以自動完成。