C#でテンプレートからWordを生成

文書生成の自動化は、動的なレポート、請求書、手紙を作成しようとする企業にとって不可欠です。Aspose.Words Mail Merge for .NETを使用すると、オブジェクト、CSV、JSON、XMLなどのさまざまなソースからデータを効率的にWordテンプレートに入力できます。このガイドでは、C#でのスムーズで自動化された文書ワークフローのためのMail Mergeの利用方法を説明し、C# .NETによる動的Word文書生成に焦点を当てます。


カバーされるトピック:


Mail Merge for .NETの概要

Aspose.Words Mail Merge for .NETは、マージフィールドを含む事前定義されたテンプレートから個別化された文書を生成するための開発者向けの機能を提供します。このプラグインは、.NET環境内でシームレスに統合されるように設計されており、以下の機能を提供します:

  • データを動的にテンプレートに入力し、.NETフレームワークのWord文書生成をサポートします。
  • 大規模データセットのための**.NETメールマージソリューション**を活用して、効率的にバルク文書生成を実行します。
  • 出力全体で一貫したフォーマットを保証し、C# Word文書テンプレートのベストプラクティスを強化します。

主な機能:

  1. マルチソースサポート: オブジェクト、データベース、XML、JSON、CSVからのデータを使用して、C#でカスタマイズされたWord文書を作成できます。
  2. 高性能: 大規模データセットとバルク操作を効率的に処理し、.NET Coreによる動的Word文書生成を実現します。
  3. カスタマイズ可能なテンプレート: データ挿入用のプレースホルダを持つテンプレートを作成し、.NET Wordメールマージ自動化機能を活用します。

セットアップ

始めるには、NuGetを使用してAspose.Wordsをインストールします:

PM> Install-Package Aspose.Words

C#オブジェクトを使用してテンプレートからWord文書を生成する

C#オブジェクトを使用してWordテンプレートを入力することから始めましょう。次のプレースホルダを持つWord文書(DOC/DOCX)を作成します:

<<[sender.Name]>> says: "<<[sender.Message]>>."

この例では、senderは、C#データベースからWord文書を生成するアプローチを使用してテンプレートを入力するために使用するクラスのインスタンスです。

次に、Aspose.Wordsのレポートエンジンを使用して、次の手順に従ってテンプレートとSenderクラスのインスタンスからWord文書を生成します:

  1. Documentクラスのインスタンスを作成し、Wordテンプレートのパスで初期化します。
  2. Senderクラスのオブジェクトを作成し、初期化します。
  3. ReportingEngineクラスをインスタンス化します。
  4. ReportingEngine.BuildReport()を使用してテンプレートを入力し、Documentのインスタンス、データソース、およびデータソースの名前をパラメータとして渡します。
  5. Document.Save()を使用して生成されたWord文書を保存します。

以下は、C#でテンプレートからWord文書を生成する方法を示すコードサンプルです。

出力

XMLデータソースからC#でWord文書を生成する

XMLデータソースからWord文書を生成するには、次のプレースホルダを持つより複雑なWordテンプレートを使用します:

<<foreach [in persons]>>Name: <<[Name]>>, Age: <<[Age]>>, Date of Birth: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<[persons.Average(p => p.Age)]>>

この例で使用されるXMLデータソースは以下の通りです。

XMLデータソースからWord文書を作成するには、以下の手順に従います:

  1. Documentクラスのインスタンスを作成し、Wordテンプレートのパスで初期化します。
  2. XmlDataSourceクラスのインスタンスを作成し、XMLファイルのパスで初期化します。
  3. ReportingEngineクラスをインスタンス化します。
  4. **ReportingEngine.BuildReport()**メソッドを使用してWordテンプレートを入力します。
  5. **Document.Save()**メソッドを使用して生成されたWord文書を保存します。

以下は、C#でXMLデータソースからWord文書を生成する方法を示すコードサンプルです。

出力

JSONデータソースからC#でWord文書を生成する

次に、JSONデータソースを使用してWord文書を生成する方法を探ります。この例では、マネージャーによってセグメント化されたクライアントのリストを作成します。Wordテンプレートは次のようになります:

<<foreach [in managers]>>Manager: <<[Name]>>
Contracts:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

テンプレートを入力するために使用するJSONデータソースは以下の通りです:

JSONからWord文書を生成するには、JsonDataSourceクラスを使用してデータソースをロードし、残りの手順は前の構造に従います。以下は、C#でJSONテンプレートからWord文書を生成する方法を示すコードサンプルです。

出力

CSVデータソースからC#で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データを使用して入力されます:

それでは、C#コードを見てみましょう。手順は同じですが、1つの重要な違いがあります:CSVデータをロードするためにCsvDataSourceクラスを使用します。以下のコードサンプルは、CSVデータソースからWord文書を生成する方法を示しています。

出力

Aspose.Words for .NETを無料で試す

無料の一時ライセンスを使用して、_Aspose.Words for .NET_を試すことができます。

結論

この記事では、C#を使用してテンプレートからWord文書を生成する方法を学びました。オブジェクト、XML、JSON、CSVなどのさまざまなデータソースを活用して、.NETでの動的文書生成を実現する方法を探りました。.NET Wordテンプレート処理の機能についてさらに詳しく知りたい場合は、ドキュメントを確認し、ぜひフォーラムを通じてお問い合わせください。

参照