我正在尋找一個庫來創建可包含一百萬行以及幾十列的XLSX文件。到目前爲止,我在Python中找到的所有庫都消耗了太多內存,而且我還沒有找到合適的庫來包裝C。我更喜歡開源,所以如果需要的話我可以修改代碼。用於創建可處理數百萬行的XLSX文檔的Python(或C)庫
編輯:我找到了解決方案。 openpyxl有一個「Optimized Writer」:http://packages.python.org/openpyxl/optimized.html
我正在尋找一個庫來創建可包含一百萬行以及幾十列的XLSX文件。到目前爲止,我在Python中找到的所有庫都消耗了太多內存,而且我還沒有找到合適的庫來包裝C。我更喜歡開源,所以如果需要的話我可以修改代碼。用於創建可處理數百萬行的XLSX文檔的Python(或C)庫
編輯:我找到了解決方案。 openpyxl有一個「Optimized Writer」:http://packages.python.org/openpyxl/optimized.html
你有沒有試過ElementTree?如果它使用太多內存,請使用SAX並且一次只處理一行。 XML parsing - ElementTree vs SAX and DOM
不,但我不明白這些軟件包會如何幫助我寫入文件。整個文檔不能在內存中創建:它太大了。 – rpkelly
我誤解了你的問題;如果您只是從頭開始創建,而不從其他文件獲取輸入,則可以一次將XLSX格式的數據逐行寫出。你嘗試過的圖書館不提供這些? –
@rpkelly:如果整個文檔無法在內存中創建,那麼一旦創建完文件,您將如何處理該文件? Excel是否足夠聰明,只需加載你正在看的那一點? –
XLSX格式由許多已壓縮的XML文件組成。如果輸出的格式不會改變,那麼使用現有文件作爲模板並且根據需要簡單地向其添加行將是微不足道的。不幸的是,ZipFile.writestr
不允許您將文件分成幾部分,因此您必須將整個XML寫入臨時文件,然後將其與ZipFile.write
一起放入zip文件中。
RDB如SQLite怎麼樣? – zellio
@Mimisbrunnr:業務需求。 – rpkelly
哎喲,那不行。 – zellio