djangoを使用したPythonのプロジェクトがあります。複雑な単語、Excel、PDFファイルを生成する必要があります。
PHPで行われた残りのプロジェクトでは、PDFにPHPexcel、 PHPWord 、およびtcpdfを使用しました。
この種のファイルを作成するために、Python用のどのライブラリをお勧めしますか?(ExcelとWordの場合、オープンxmlファイル形式xlsx、docxを使用します)
Python-docxが役立つ場合があります(https://github.com/mikemaccana/python-docx)。
Pythonには、単語文書を操作するための高度に開発されたツールがありません。Javaライブラリxdocreport(https://code.google.com/p/xdocreport/)がWordレポートに最適であることがわかりました。FOPを介して効率的に実行されるPCLを生成する必要があるため、docx4jも使用します。
これをPythonと統合するには、sparkフレームワークを使用して単純なWebサービスでラップしrequests
、Python側でサービスと通信します。
Excelの場合、 openpyxlがあります。これは、実際にはPHPexcelのPythonポートであるafaikです。まだ使っていませんが、大丈夫そうです。
Docutilsの使用をお勧めします。reStructuredTextファイルを受け取り、それらを一連の出力ファイルに変換します。パッケージには、HTML、LaTeX、および.odfファイルライターが含まれていますが、サンドボックスには、他の形式に書き込むための他のライターがたくさんあります。たとえば、WordMLライター(免責事項:私は使用していません)を参照してください。
このソリューションの利点は、そのまま人間が読めるプレーンテキスト(reStructuredText)マスターファイルを記述し、必要に応じて他のさまざまなファイル形式に変換できることです。
Pythonソリューションではありませんが、 docutilsよりもはるかに幅広い出力および入力形式をサポートするHaskellライブラリのPandocも確認する必要があります。Docutilsに対するPandocの主な利点の1つは、逆変換、つまりWordMLからreStructuredTextを実行できることです。ここでPandocを試すことができます。
私はこれにライブラリを使用したことはありませんがdocx
、xlsx
ファイルの拡張子をに変更してzip
、魔法を見ることができます!
openxmlファイルの生成は、いくつかのXMLファイル(テンプレートを使用できます)を生成して圧縮するのと同じくらい簡単です。
PDFを生成する最も簡単な方法は、HTML(CSS +画像を使用)を生成し、wkhtmltopdf
ツールを使用して変換することです。