2013-02-07 83 views
6

我真的有很大的數據庫,我想寫給xlsx/xls文件。我已經嘗試使用xlwt,但它只允許寫入65536行(我的一些表格有72多行)。我還發現openpyxl,但它的工作速度太慢,併爲大電子表格使用大量內存。有沒有其他的可能性來編寫excel文件?如何將大量數據寫入xls文件?

編輯: 以下kennym的建議我使用優化讀者和作家。它現在消耗更少的內存,但仍然很耗時。導出現在需要超過一小時(對於真正的大表 - 最多10^6行)。還有其他的可能嗎?也許有可能出口從HDF5數據庫文件到excel整個表,而不是這樣做行後行 - 像它現在在我的代碼?

+2

您可以嘗試直接寫入.tsv/.csv然後在Excel中打開它? – uptownnickbrown

+1

65536用於Excel中的限制 - 我仍然是這樣。你可以創建一個製表符分隔的文件,看看你的Excel是否會加載它。 – sotapme

+0

我想知道如果沒有更好的細分問題。比方說,遵循數據庫結構的多個excel文件。無論如何,我不確定會有這麼大的xls文件。 –

回答

2

使用openpyxl軟件包的Optimized Reader and Writer。優化的閱讀器和寫入器運行得更快,並且使用的內存比標準的openpyxl方法少得多。

+0

謝謝,它使這個過程更快,更少的內存消耗。 –

3

在常量存儲模式下嘗試並使用XlsxWriter

對於的.xls文件我怕沒有內存優化的方式。你找到了嗎?

+0

使用openpyxl時,處理海量數據文件時出現內存溢出問題。使用帶有constant_memory的XlsxWriter解決了這個問題。 – G4mo

1

XlsxWriter適合我。我嘗試openpyxl,但它錯誤。 22k * 400 r * c