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

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


カバーされるトピック:


Mail Merge for .NETの概要

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

  • テンプレートを動的にデータで埋め込み、.NETフレームワークのWord文書生成をサポートします。
  • 大量のデータセットを利用した効率的な文書のバルク生成を実現します。
  • 出力の整合性を保ち、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]>> が言います: "<<[sender.Message]>>."

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

次に、Aspose.Wordsのレポーティングエンジンを使用して、テンプレートからWord文書を生成するために以下の手順に従います:

  • Documentクラスのインスタンスを作成し、Wordテンプレートのパスで初期化します。
  • Senderクラスのオブジェクトを作成して初期化します。
  • ReportingEngineクラスをインスタンス化します。
  • ReportingEngine.BuildReport()を使用してテンプレートを埋め込み、Documentのインスタンス、データソース、およびデータソースの名前をパラメータにします。
  • Document.Save()メソッドを使用して生成したWord文書を保存します。

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

出力

XMLデータソースを使用したC#でのWord文書生成

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

<<foreach [in persons]>>名前: <<[Name]>>, 年齢: <<[Age]>>, 生年月日: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
平均年齢: <<[persons.Average(p => p.Age)]>>

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

XMLデータソースからWord文書を作成する手順は以下の通りです:

  • Documentクラスのインスタンスを作成し、Wordテンプレートのパスで初期化します。
  • XmlDataSourceクラスのインスタンスを作成し、XMLファイルのパスで初期化します。
  • ReportingEngineクラスをインスタンス化します。
  • **ReportingEngine.BuildReport()**メソッドを使用してWordテンプレートを埋め込みます。
  • **Document.Save()**メソッドを使用して生成したWord文書を保存します。

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

出力

C#でのJSONデータソースを使用したWord文書の生成

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

<<foreach [in managers]>>マネージャー: <<[Name]>>
契約:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

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

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

出力

C#でのCSVデータソースを使用したWord文書の生成

CSVソースからWord文書を生成するには、以下のWordテンプレートを利用します:

<<foreach [in persons]>>名前: <<[Column1]>>, 年齢: <<[Column2]>>, 生年月日: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
平均年齢: <<[persons.Average(p => p.Column2)]>>

このテンプレートは以下のCSVデータを使用して埋め込まれます:

ここで、C#コードを確認します。手順はほぼ同じですが、1つの重要な違いは、CsvDataSourceクラスを使用してCSVデータを読み込むことです。以下のコードサンプルは、CSVデータソースからWord文書を生成する方法を示しています。

出力

Aspose.Words for .NETを無料でお試しください

無料の一時ライセンスを使用して_Aspose.Words for .NET_をお試しいただけます。

結論

この記事では、C#を使用してテンプレートからWord文書を生成する方法を学びました。オブジェクト、XML、JSON、CSVなどのさまざまなデータソースを利用して動的文書生成 .NETを実現する方法も発見しました。さらに、ドキュメントを探索して**.NET Wordテンプレート処理**の機能を深く掘り下げたり、フォーラムを通じてご連絡することができます。

参考文献