テンプレートから Word 文書を作成する方法をお探しですか?正しい場所に来ました!このブログ投稿では、Python のさまざまな種類のデータ ソースを使用してテンプレートから Word ドキュメントを生成するための最適なソリューションを検討します。 XML、JSON、CSV などのさまざまなデータ ソースを使用してプレースホルダーを設定することにより、事前定義されたテンプレートを活用して DOCX 形式の Word ドキュメントを生成する方法を学びます。
この記事では次のトピックについて説明します。
- テンプレートから Word ドキュメントを生成する Python ライブラリ
- XML データを使用してテンプレートから Word 文書を作成
- JSON データを使用してテンプレートから Word ドキュメントを生成
- Python で CSV データを含む Word ドキュメントを生成
- Python LINQ レポート エンジン
- 無料リソース
テンプレートから Word ドキュメントを生成する Python ライブラリ
テンプレートから Word ドキュメントを生成するには、LINQ Reporting Engine の Aspose.Words for the Python API を使用します。このエンジンは、テキスト、画像、リスト、表、ハイパーリンク、ブックマークなどのさまざまなタグをサポートしています。これらのタグを特徴とする Word 文書にデータを入力し、XML、JSON、または CSV データ ソースからのデータを埋め込みます。それでは、Python を使用してテンプレートから Word ドキュメントを生成してみましょう。
Aspose.Words for Python のインストール
コンソールで次の pip コマンドを使用して、パッケージをダウンロードまたはPyPI から API をインストールできます。
> pip install aspose-words
Python で XML データを使用してテンプレートから Word ドキュメントを作成する
XML データ ソースを使用してテンプレートから Word 文書を生成するには、テンプレート ファイルと XML ソース データが必要です。テンプレート ドキュメントのコンテンツとして次のプレースホルダーを使用して Word ドキュメント (DOC/DOCX) を作成します。
Name: <<[Name]>>, Age: <<[Age]>>, Date of Birth:
<<[Birth]:"dd.MM.yyyy">>
Children:
<<foreach [in Child]>><<[Child_Text]>>
<</foreach>>"""
この例で使用する XML データ ソースは次のとおりです。
<Person>
<Name>John Doe</Name>
<Age>30</Age>
<Birth>1989-04-01 4:00:00 pm</Birth>
<Child>Ann Doe</Child>
<Child>Charles Doe</Child>
</Person>
以下の手順に従って、XML データ ソースから Word ドキュメントを簡単に生成できるようになりました。
- Document クラスを使用して Word テンプレート ファイルを読み込みます。
- XmlDataSource クラスのインスタンスを作成し、XML ファイルのパスを使用して初期化します。
- ReportingEngine クラスをインスタンス化します。
- テンプレート、データ ソース、およびデータ ソース名を指定して ReportingEngine.BuildReport() メソッドを呼び出します。
- Document.Save() メソッドを使用して、生成された Word 文書を保存します。
次のコード サンプルは、Python で XML データ ソースから Word ドキュメントを生成する方法を示しています。
# このコード例は、XML データ ソースを使用してテンプレートから Word ドキュメントを生成する方法を示します。
# テンプレートをロードする
doc = aw.Document("D:\\Files\\template.docx")
# データソースをロードする
data_source = aw.reporting.XmlDataSource("D:\\Files\\data-source.xml")
# レポートエンジンを初期化する
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");
# 文書を保存する
doc.save("D:\\Files\\WordFromXML.docx")
出力
Python で JSON データを使用してテンプレートから Word ドキュメントを生成する
JSON データ ソースを使用して Word ドキュメントを生成するには、次の Word テンプレートを使用します。
<<foreach [in managers]>>Manager: <<[Name]>>
Contracts:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>
以下は、テンプレートを設定するために使用する JSON データ ソースになります。
[
{
Name: "John Smith",
Contract:
[
{
Client:
{
Name: "A Company"
},
Price: 1200000
},
{
Client:
{
Name: "B Ltd."
},
Price: 750000
},
{
Client:
{
Name: "C & D"
},
Price: 350000
}
]
},
{
Name: "Tony Anderson",
Contract:
[
{
Client:
{
Name: "E Corp."
},
Price: 650000
},
{
Client:
{
Name: "F & Partners"
},
Price: 550000
}
]
},
]
前述の手順に従って、JSON データ ソースから Word ドキュメントを簡単に生成できます。ただし、ステップ 2 で JSON データ ソースをロードして使用するために JsonDataSource クラスを使用します。
次のコード サンプルは、Python で JSON を使用してテンプレートから Word ドキュメントを生成する方法を示しています。
# このコード例は、JSON データ ソースを使用してテンプレートから Word ドキュメントを生成する方法を示します。
# テンプレートをロードする
doc = aw.Document("D:\\Files\\template-json.docx")
# データソースをロードする
data_source = aw.reporting.JsonDataSource("D:\\Files\\data-source.json")
# レポートエンジンを初期化する
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "managers");
# 文書を保存する
doc.save("D:\\Files\\WordFromJSON.docx")
出力
Python で CSV データを含む Word ドキュメントを生成する
CSV から Word ドキュメントを生成するには、次の Word テンプレートを使用します。
<<foreach [in persons]>>Name: <<[Column1]>>, Age: <<[Column2]>>, Date of Birth: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<[persons.Average(p => p.Column2)]>>
テンプレートには次の CSV データが設定されます。
John Doe,30,1989-04-01 4:00:00 pm
Jane Doe,27,1992-01-31 07:00:00 am
John Smith,51,1968-03-08 1:00:00 pm
これで、前述の手順に従って、CSV データ ソースから Word ドキュメントを生成できます。ただし、ステップ 2 で CSV データ ソースをロードして使用するために CsvDataSource クラスを使用します。
次のコード サンプルは、Python で CSV データ ソースから Word ドキュメントを生成する方法を示しています。
# このコード例は、JSON データ ソースを使用してテンプレートから Word ドキュメントを生成する方法を示します。
# テンプレートをロードする
doc = aw.Document("D:\\Files\\template-csv.docx")
# データソースをロードする
data_source = aw.reporting.CsvDataSource("D:\\Files\\data-source.csv")
# レポートエンジンを初期化する
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");
# 文書を保存する
doc.save("D:\\Files\\WordFromCSV.docx")
出力
無料ライセンスを取得する
無料の一時ライセンスを取得して、評価制限なしで Word ドキュメントを生成できます。
Python LINQ レポート エンジン - 詳細を読む
LINQ レポート エンジンは、完全な機能を備えた Word ドキュメントを Python で動的に生成するための幅広いタグをサポートしています。これらのタグとその構文の詳細については、この記事を参照してください。
Python テンプレートから Word ドキュメントを生成 – 無料リソース
テンプレートから Word 文書を生成するだけでなく、Word 文書の作成、操作、変換について詳しく学び、以下のリソースを使用してライブラリのその他のさまざまな機能を調べてください。
結論
この記事では、Python でテンプレートから Word ドキュメントを生成する方法を学習しました。 XML、JSON、CSV データ ソースを使用して Word ドキュメントを生成する方法についても説明しました。 Aspose.Words for Python LINQ Reporting Engine を利用すると、さまざまな種類の Word ドキュメントを簡単に生成できます。不明な点がある場合は、無料サポート フォーラムまでお気軽にお問い合わせください。