JavaでExcelデータからレポートを生成する

Microsoft Excelデータを、カスタマイズされたレポートの形式でクライアントや利害関係者などのユーザーに提示できます。Java開発者は、Excelスプレッドシートをデータのテーブルとして使用して、このようなレポートをプログラムで生成できます。この記事では、Javaを使用してExcelデータからレポートを生成する方法を学習します。

この記事では、次のトピックについて説明/取り上げています。

レポートを生成するためのJavaAPI

Excelデータからレポートを生成するには、GroupDocs.Assembly for JavaAPIを使用します。これにより、強力なドキュメント自動化およびレポート生成アプリケーションを構築できます。定義されたテンプレートドキュメントに従ってデータソースからデータをフェッチし、それをアセンブルして、指定された出力形式でレポートを生成します。 APIは、XML、Excel、JSON、CSVなどのさまざまなデータソースからのデータのフェッチをサポートしています。 PDF、HTML、MicrosoftWordなどの一般的に使用されるすべてのファイル形式でレポートを簡単に生成できます。

APIのJARをダウンロードするか、MavenベースのJavaアプリケーションに次のpom.xml構成を追加して、以下のコード例を試すことができます。

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-assembly</artifactId>
        <version>21.7</version> 
</dependency>

Javaを使用してExcelデータからレポートを生成する

以下に説明する簡単な手順に従うことで、ExcelデータからWordでレポートを簡単に生成できます。

  1. Excelデータソースを取得します
  2. Excelデータに従ってテンプレートを定義します
  3. JavaでExcelデータをWordレポートに変換

Excelデータソース

表計算データをExcelスプレッドシートで提供されるデータソースとして使用して、レポートを生成できます。レポートの生成には、次のサンプルExcelデータを使用します。これは、クライアントとそれぞれのマネージャーとの契約データと合意された契約価格です。

Excelデータソース

Excelデータソース

テンプレート

Linqベースのテンプレート構文を使用してテンプレートを作成できます。テンプレートは、共通のドキュメントコンテンツと、テンプレートの構造とデータバインディングを説明するタグで構成されています。 DOCXまたはXLSXファイルで次のテンプレートを定義できます。このテンプレートを使用すると、契約のデータとそれぞれのマネージャーを契約価格で繰り返すことができます。テンプレート内の各グループには、入力セレクターによって定義された一意のキーがあり、このキーに関連付けられたソース列挙のアイテムが含まれています。 Keyプロパティを使用して、グループインスタンスのキーにアクセスできます。テンプレートを作成したら、レポートを生成するためのコードにジャンプできます。 テンプレート構文の詳細については、ドキュメントを参照してください。

レポート-テンプレート

レポートテンプレート

JavaでExcelデータをWordレポートに変換する

以下の手順に従って、テンプレートに基づいてExcelデータからDOCXレポートへの変換を自動化できます。

  • Excelデータファイル、テンプレートファイル、およびDOCX出力レポートファイルのパスを定義します
  • DocumentTableOptionsクラスのインスタンスを作成します
  • setFirstRowContainsColumnNamesをtrueに設定します
  • 定義されたExcelデータファイルとDocumentTableOptionsを使用してDocumentTableを作成します
  • DocumentAssemblerクラスのインスタンスを作成します
  • 提供されたExcelデータと定義されたテンプレートを使用してassembleDocument()メソッドを呼び出します

次のコードサンプルは、Javaを使用して、定義されたテンプレートに従ってExcelデータソースからレポートを生成する方法を示しています。

String srcDocument = "C:\\Files\\template.docx";
String docReport = "C:\\Files\\Output.docx";
String dataFilePath = "C:\\Files\\Contracts_Data.xlsx";

// 最初の行からの列名の抽出を設定します。
DocumentTableOptions options = new DocumentTableOptions();
options.setFirstRowContainsColumnNames(true);

// ドキュメントテーブルを作成する
DocumentTable table = new DocumentTable(dataFilePath, 0, options);

// ドキュメントアセンブラを作成する
DocumentAssembler assembler = new DocumentAssembler();

// データを集めてレポートを生成する
assembler.assembleDocument(srcDocument,docReport, 
  new DataSourceInfo(new DataStorage(), null),
  new DataSourceInfo(table,"ds"));
生成されたレポート

生成されたレポート

DocumentTableOptionsクラスは、ドキュメントテーブルからのデータの抽出を制御するための一連のオプションを提供します。 FirstRowContainsColumnNamesプロパティをtrueに設定して、列ヘッダーがレポートデータの一部にならないようにしました。

DocumentTableクラスは、ドキュメントの組み立て中に使用される外部ドキュメントにある単一のテーブル(またはスプレッドシート)のデータへのアクセスを提供します。

DocumentAssemblerクラスは、データを含む定義済みのテンプレートドキュメントを使用してレポートを生成するためのさまざまなメソッドを提供します。このクラスのassembleDocument()メソッドは、3つの入力パラメーター、ソースドキュメントとして定義されたテンプレート、出力ファイルパス、およびデータソースを取ります。提供されたテンプレートドキュメントに基づいてデータソースからデータを入力し、結果のドキュメントをターゲットパスに保存します。結果のドキュメントは、Word、Excel、HTMLなどのサポートされているさまざまなファイル形式で保存できます。

無料ライセンスを取得する

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、Javaを使用してExcelデータからレポートを生成する方法を学習しました。また、レポートを生成するためのレポートテンプレートを作成する方法も学習しました。 ドキュメントを使用して、GroupDocs.Assembly forJavaAPIの詳細を確認できます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目