2016-12-08 251 views
2

私は650kの行で75colの文書をopenpyxlで作成しようとしていますが、これは一定のメモリフットプリントに近いと言われていますが、しばらくしてからアクティビティモニタ、ここで私が使用しているコードは何ですか、私は何か間違っていますか?openpyxl大きなファイルのメモリの問題を書く

def testOPENPYXL(): 
    wb = openpyxl.Workbook(write_only=True) 
    ws = wb.create_sheet() 
    for irow in range(650000): 
     ws.append(['%d' % i for i in range(75)]) 
    path = os.path.expanduser("~/Desktop/test/test.xlsx") 
    wb.save(path) 
+0

It's Python 3.4.3 – Eugene

+0

しかし、巨大なXLファイルを書いていて、後で開くことができないほど大きなものなら、それはメモリに収まらないでしょうか? – MYGz

+0

@MohammadYusufGhaziは大きなデータベースチャンクをExcelにエクスポートします。出力文書は約200MBであり、問​​題は前記ファイルを作成する間のメモリ消費量である。 – Eugene

答えて

5

簡単な解決策は、私たちが模倣のlxmlののストリーミング作家というopenpyxlでシムを持っていますが、それはメモリとして効率的ではないlxmlをインストールすることです。

+0

ありがとうございました。 lxmlがExcelファイルの作成にどのように関係するのかよく分かりませんが、使用するためのコードスニペットはありますか? – Eugene

+2

インストールするだけで自動的に使用されます。 –

+0

これはどんな魔法ですか?lxmlをインストールすると、メモリ使用量は実際には40.1MBに減少しました。ありがとうございました! – Eugene

関連する問題