Aspose.Words は、さまざまなドキュメント管理および操作タスクを実行するための高レベルの Word ドキュメント処理 API です。API は、クロスプラットフォーム アプリケーションで Microsoft Word を直接使用せずに、ドキュメントの生成、変更、変換、レンダリング、および印刷をサポートします。また、
Aspose API は一般的なファイル フォーマット処理をサポートし、さまざまなタイプのドキュメントを固定レイアウト ファイル フォーマットおよび最も一般的に使用されるイメージ/マルチメディア フォーマットにエクスポートまたは変換できます。
Aspose.words の最新ダウンロード (qun: 761297826) https://www.evget.com/product/564/download
通常、レポート生成プロセスには、必須フィールドのプレースホルダーを含む定義済みのドキュメント テンプレートへの入力が含まれます。レポート エンジンは、テンプレート ドキュメントを入力として受け取り、プレースホルダーに動的にデータを入力して、結果のレポートを生成します。この記事では、Java を使用してプログラムで Word テンプレートに動的にデータを入力することにより、Word 文書を生成できる同様のユース ケースも示します。
DOCX テンプレートから Word ドキュメントを生成するには、Aspose.Words for Java API によって提供される LINQ Reporting Engine を使用します。LINQ レポート エンジンは、Word テンプレートのテキスト、画像、リスト、テーブル、ハイパーリンク、およびブックマークのさまざまなタグをサポートしています。これらのタグを含むテンプレート ドキュメントは、エンジンによって、Java オブジェクトおよび XML、JSON、または CSV データ ソースからのデータを取り込まれます。それでは、Java を使用してテンプレートから Word 文書を生成してみましょう。
この記事では、次のテンプレートを使用してテンプレートから Word 文書を生成する方法について説明します。
- Java オブジェクトの値、
- XML データ ソース、
- JSONデータソース、
- CSV データ ソース。
Aspose.Words for Java のインストール - Word Automation および Report Generation API
Aspose.Words for Java JAR をダウンロードするか、次の構成を使用して Maven ベースのアプリケーションに追加できます。
リポジトリ:
<リポジトリ> <id>AsposeJavaAPI</id> <name>Aspose Java API</name> <url>https://repository.aspose.com/repo/</url> </repository>
頼る:
<dependency> <groupId>com.aspose</groupId> <artifactId>aspose-words</artifactId> <version>20.1</version> <type>pom</type> </dependency>
Java オブジェクトを使用してテンプレートから Word 文書を生成する
レポートの生成を開始するには、まずテンプレートに Java オブジェクトの値を入力して Word ドキュメントを作成します。ドキュメント テンプレートを定義するには、新しい Word ドキュメントを作成し、次のタグを挿入して DOCX ドキュメントとして保存します。
<<[s.getName()]>> は、「<<[s.getMessage()]>>」と言います。
上記のテンプレートでは、「s」は Java クラスのオブジェクトとして扱われ、ラベルに入力されます。それでは、2 つのデータ メンバーを持つ Sender というクラスを作成しましょう。
public class Sender { public Sender(String name, String message) { _name = name; _message = メッセージ; } public String getName() { return _name; } public String getMessage() { return _message; } プライベート文字列 _name; プライベート文字列 _message; }
次に、Word テンプレートを LINQ レポート エンジンに渡し、Sender オブジェクトの値に基づいて Word ドキュメントを生成します。Word 文書を生成する手順は次のとおりです。
- Document オブジェクトを作成し、テンプレートへのパスで初期化します。
- Sender クラスのオブジェクトを作成して初期化します。
- ReportingEngine クラスのオブジェクトを作成します。
- ドキュメント テンプレート、データ ソース、およびデータ ソース名を受け入れる ReportingEngine.buildReport() メソッドを使用して、レポートを作成します。
- Document.save() メソッドを使用して、結果の Word ドキュメントを保存します。
次のコード例は、Java オブジェクトの値を使用して Word テンプレートから Word ドキュメントを生成する方法を示しています。
// Document オブジェクトを作成し、DOCX テンプレートで初期化します。 Document doc = new Document("template.docx"); // 送信者オブジェクトを作成します。 Sender sender = new Sender("LINQ Reporting Engine", "Hello World"); // ReportingEngine オブジェクトを作成します。 ReportingEngine engine = new ReportingEngine(); // レポートを作成します。 engine.buildReport(doc, sender, "s"); // Word 文書として保存します。 doc.save("word.docx");
出力
XML データを使用してテンプレートから Word 文書を作成する
次に、さらに一歩進んで、やや複雑なシナリオで Word テンプレートに XML データ ソースを設定する方法を見てみましょう。以下は、Word テンプレートに入力するために使用する XML データ ソースです。
<Persons> <Person> <Name>John Doe</Name> <Age>30</Age> <Birth>1989-04-01 4:00:00 pm</Birth> </Person> <Person> <Name >Jane Doe</Name> <Age>27</Age> <Birth>1992-01-31 07:00:00 am</Birth> </Person> <Person> <Name>John Smith</Name> <年齢>51</年齢> <誕生>1968-03-08 1:00:00 pm</誕生> </Person> </Persons>
この場合、XML データ ソースの複数のレコードに対して、テンプレート ドキュメントで次のタグを使用します。
<<foreach [人]>> 名前: <<[名前]>>、年齢: <<[年齢]>>、生年月日: <<[生]:"dd.MM.yyyy">> << /foreach>> 平均年齢: <<[persons.average(p => p.Age)]>>
この場合、Word ドキュメントを生成する Java コードは同じですが、Java オブジェクトをデータ ソースとして渡す代わりに、ReportingEngine.buildReport() メソッドで XmlDataSource オブジェクトを渡します。次のコード例は、ドキュメント テンプレートに Java の XML データ ソースを設定して Word ドキュメントを作成する方法を示しています。
// Document オブジェクトを作成し、DOCX テンプレートで初期化します。 Document doc = new Document("template.docx"); // XML を読み込みます XmlDataSource dataSource = new XmlDataSource("./datasource.xml"); // ReportingEngine オブジェクトを作成します。 ReportingEngine engine = new ReportingEngine(); // レポートを作成します。 engine.buildReport(doc, dataSource, "persons"); // Word ドキュメントとして保存します。 doc.save("word.docx");
出力
JSON データを使用してテンプレートから Word ドキュメントを生成する
次に、JSON データ ソースを使用して DOCX テンプレートから Word ドキュメントを生成する方法を見てみましょう。以下は、この例で使用する JSON データです。
[ { 名前: "John Smith", 契約: [ { クライアント: { 名前: "A 社" }, 価格: 1200000 }, { クライアント: { 名前: "B Ltd." }, 価格: 750000 }, { クライアント: { 名前: "C & D" }, 価格: 350000 } ] }, { 名前: "Tony Anderson", 契約: [ { クライアント: { 名前: "E Corp." }、 価格: 650000 }、 { クライアント: { 名前: " }, 価格: 550000 } ] }, ]
この例では、マネージャーごとにグループ化された顧客のリストを含む Word ドキュメントを生成します。これに基づいて、DOCX テンプレートは次のようになります。
<<foreach [in manager]>>Manager: <<[Name]>> Contracts: <<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>) < </foreach>> <</foreach>>
JSON データ ソースをロードするために、Aspose.Words は JsonDataSource クラスを提供します。次のコード サンプルは、Java で JSON データ ソースを使用してテンプレートから Word ドキュメントを作成する方法を示しています。
// Document オブジェクトを作成し、DOCX テンプレートで初期化します。 Document doc = new Document("template.docx"); // JSON JsonDataSource を読み込みます dataSource = new JsonDataSource("datasource.json"); // ReportingEngine オブジェクトを作成します。 ReportingEngine engine = new ReportingEngine(); // レポートを作成します。 engine.buildReport(doc, dataSource, "managers"); // Word ドキュメントとして保存します。 doc.save("word.docx");
出力
CSV データを使用してテンプレートから Word 文書を生成する
最後に、Word テンプレートに次の CSV データ ソースを入力して Word ドキュメントを生成する方法を見てみましょう。
John Doe,30,1989-04-01 午後 4:00:00 Jane Doe,27,1992-01-31 午前 7:00:00 John Smith,51,1968-03-08 午後 1:00:00
この例では、次の Word テンプレートを使用します。
<<foreach [人]>>名前: <<[列1]>>、年齢: <<[列2]>>、生年月日: <<[列3]:"dd.MM.yyyy">> << /foreach>> 平均年齢: <<[persons.average(p => p.Column2)]>>
CSV データ ソースを扱うために、Aspose.Words は CsvDataSource クラスを提供します。次のコード サンプルは、Java で CSV データ ソースを使用して Word ドキュメントを生成する方法を示しています。
// Document オブジェクトを作成し、DOCX テンプレートで初期化します。 Document doc = new Document("template.docx"); // CSV CsvDataSource を読み込みます dataSource = new CsvDataSource("datasource.csv"); // ReportingEngine オブジェクトを作成します。 ReportingEngine engine = new ReportingEngine(); // レポートを作成します。 engine.buildReport(doc, dataSource, "persons"); // Word ドキュメントとして保存します。 doc.save("word.docx");
出力
以上が、Javaを使ってテンプレートからWord文書を動的に生成するプロセスです. その他の製品についてご不明な点がございましたら、お気軽にご相談いただくか、公式技術交流会にご参加ください.