2014-01-24 95 views
3

python,openpyxl和Excel文件在這裏有一個很大的問題。我的目標是將一些計算的數據寫入Excel中的預配置模板。我加載這個模板並在其上寫入數據。有兩個問題:openpyxl:用python編寫大型excel文件

  1. 我說的是寫超過2百萬個單元格的Excel書籍,分成幾張。
  2. 我這樣做是成功的,但等待時間是不可想象的。

我不知道用其他方法解決這個問題。也許openpyxl不是解決方案。我試圖用xlsb編寫,但我認爲openpyxl不支持這種格式。我也嘗試過優化編寫器和閱讀器,但由於大數據的原因,我保存時出現問題。但是,輸出文件大小最多爲10 MB。我非常堅持這一點。你知道是否有另一種方法來做到這一點?

在此先感謝。

+0

如何嘗試使用數組常量而不是直接單元值。據我所知,它比細胞操作更快。請參閱http://office.microsoft.com/en-us/excel-help/more-arrays-introducing-array-constants-in-excel-HA001087291.aspx?CTT=5&origin=HA001087290。 – Wonil

回答

2

對於內存使用而言,文件大小並不是真正的問題,而是內存中單元的數量。您的使用案例確實會將openpyxl推到目前的限制,目前這個限制旨在支持優化閱讀或優化書寫,但不能同時進行。有一件事你可以試試openpyxluse_iterators=True這將給你一個發電機,你可以撥打xlsxwriter應該能夠爲你寫一個新的文件。 xlsxwriter目前在創建文件時比openpyxl快得多。解決方案並不完美,但它可能適合你。

+0

這是完美的,正如你所說,它顯着更快。謝謝你,兄弟。 – DavidRguez