2011-06-21 7 views
0

私は、100万行以上の数十の列を含むことができるXLSXファイルを作成するライブラリを探しています。これまで私がPythonで見つけたすべてのライブラリは、あまりにも多くのメモリを消費していました.Cでラップするのに適したライブラリが見つからなかったので、必要に応じてコードを変更できるようにオープンソースが好きです。数百万行を処理できるXLSXドキュメントを作成するためのPython(またはC)ライブラリ

EDIT:解決策を見つけました。 openpyxlには「最適化ライター」があります:http://packages.python.org/openpyxl/optimized.html

+0

SQLiteのようなRDBについてはどうですか? – zellio

+0

@Mimisbrunnr:ビジネス要件。 – rpkelly

+1

おっと、いいですね。 – zellio

答えて

1

ElementTreeを試しましたか?それがあまりにも多くのメモリを使用する場合は、SAXを使用して一度に行を処理してください。 XML parsing - ElementTree vs SAX and DOM

+0

いいえ、しかし、どのパッケージがファイルの作成に役立つかわかりません。ドキュメント全体をメモリに作成することはできません。サイズが大きすぎます。 – rpkelly

+0

質問が間違っています。単純に作成して他のファイルからの入力を取得しない場合は、一度に1行ずつXLSX形式でデータを書き出すことができます。試したライブラリはそれを提供していませんか? –

+1

@rpkelly:ドキュメント全体をメモリに作成できない場合は、作成したファイルで何をするつもりですか?あなたが見ているビットをロードするだけで十分なExcelスマートですか? –

0

XLSX形式は、圧縮された多数のXMLファイルで構成されています。出力形式が変更されない場合は、既存のファイルをテンプレートとして使用し、必要に応じて行を追加するだけです。残念ながら、ZipFile.writestrではファイルを分割して書くことができませんので、XML全体を一時ファイルに書き込んで、それをZipFile.writeというジップに配置する必要があります。

関連する問題