レポート作成や構造化された情報の分析を行う際、JSON データを Excel スプレッドシートに変換する必要が頻繁にあります。
Aspose.Words Cloud SDK for Java は、Java アプリケーションでこの変換を簡素化する強力なクラウドベース API を提供します。
このガイドでは、JSON を Java で XLSX に変換する 方法を順を追って説明します。完全なコード例、cURL を使用した同等の REST 呼び出し、そして重要なベストプラクティスの推奨事項をカバーします。
最後まで読むと、任意の JSON ソースから XLSX ファイルを生成し、入れ子構造も簡単に扱えるようになります。

JSON から XLSX を Java で生成 - 完全コード例

この例では、JSON ファイルを読み取り、DOCX テーブルを作成し、Aspose.Words Cloud SDK for Java を使用して XLSX に変換する方法を示します。

import com.aspose.words.cloud.*;
import com.aspose.words.cloud.model.*;
import com.aspose.words.cloud.api.*;
import com.aspose.words.cloud.auth.*;
import com.fasterxml.jackson.databind.*;
import java.io.*;
import java.util.*;

public class JsonToXlsxConverter {
    public static void main(String[] args) throws Exception {
        // Initialize API
        String clientId = "YOUR_CLIENT_ID";
        String clientSecret = "YOUR_CLIENT_SECRET";
        WordsApi wordsApi = new WordsApi(clientId, clientSecret);
        
        // Paths
        String jsonPath = "data.json";
        String tempDocxPath = "temp.docx";
        String outputXlsxPath = "output.xlsx";
        
        // Read JSON
        ObjectMapper mapper = new ObjectMapper();
        List<Map<String, Object>> records = mapper.readValue(new File(jsonPath),
                mapper.getTypeFactory().constructCollectionType(List.class, Map.class));
        
        // Define column order (keys from first record)
        List<String> columns = new ArrayList<>(records.get(0).keySet());
        
        // Create empty DOCX in cloud
        CreateDocumentRequest createRequest = new CreateDocumentRequest("temp.docx");
        wordsApi.createDocument(createRequest);
        
        // Build table rows
        TableRowInsert requestRow = new TableRowInsert();
        // First row - header
        TableRow headerRow = new TableRow();
        List<TableCell> headerCells = new ArrayList<>();
        for (String col : columns) {
            TableCell cell = new TableCell();
            cell.setText(col);
            headerCells.add(cell);
        }
        headerRow.setTableCellList(headerCells);
        // Insert header row at position 0
        InsertTableRowRequest insertHeader = new InsertTableRowRequest("temp.docx", 0, headerRow);
        wordsApi.insertTableRow(insertHeader);
        
        // Insert data rows
        int rowIndex = 1;
        for (Map<String, Object> rec : records) {
            TableRow dataRow = new TableRow();
            List<TableCell> dataCells = new ArrayList<>();
            for (String col : columns) {
                TableCell cell = new TableCell();
                cell.setText(String.valueOf(rec.get(col)));
                dataCells.add(cell);
            }
            dataRow.setTableCellList(dataCells);
            InsertTableRowRequest insertRow = new InsertTableRowRequest("temp.docx", rowIndex, dataRow);
            wordsApi.insertTableRow(insertRow);
            rowIndex++;
        }
        
        // Convert DOCX to XLSX
        ConvertDocumentRequest convertRequest = new ConvertDocumentRequest("temp.docx", "xlsx");
        byte[] xlsxBytes = wordsApi.convertDocument(convertRequest);
        try (FileOutputStream fos = new FileOutputStream(outputXlsxPath)) {
            fos.write(xlsxBytes);
        }
    }
}

注意: このコード例はコア機能を示しています。プロジェクトで使用する前に、ファイルパスや構成値を実際の環境に合わせて更新し、すべての必須依存関係が正しくインストールされていることを確認し、開発環境で徹底的にテストしてください。問題が発生した場合は、公式ドキュメント または サポートチーム にお問い合わせください。

cURL を使用した REST API による JSON から XLSX への変換

Javaコードを書かずに、Aspose.Words Cloud REST API を直接呼び出すことで、同じ変換を実行できます。

  1. アクセストークンを取得する - APIはOAuth 2.0を使用します。
curl -X POST "https://api.aspose.cloud/connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. JSON ファイルをアップロード (API は DOCX ソースを期待するため、最初にプレースホルダー DOCX をアップロードします。)
curl -X PUT "https://api.aspose.cloud/v4.0/words/temp.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document" \
     --data-binary "@temp.docx"
  1. JSONからテーブルを作成 - この手順はコード内の SDK で処理されます。REST API を使用する場合は、すでにテーブルが含まれている事前に入力された DOCX をアップロードします。

  2. DOCX を XLSX に変換する

curl -X GET "https://api.aspose.cloud/v4.0/words/temp.docx?format=xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.xlsx

パラメータの完全な一覧については、公式 API ドキュメントをご覧ください。

JavaでJSONをXLSXに変換する - コードの仕組み

以下は、Java例の主要なセクションの簡潔な概要です。

  1. API の初期化 - WordsApi wordsApi = new WordsApi(clientId, clientSecret); は認証済みクライアントを作成します。
WordsApi wordsApi = new WordsApi(clientId, clientSecret);
  1. JSON の読み取り - ObjectMapper は JSON ファイルをマップのリストにデシリアライズし、元のフィールド順序を保持します。
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> records = mapper.readValue(
        new File(jsonPath),
        mapper.getTypeFactory().constructCollectionType(List.class, Map.class));
  1. クラウドで DOCX を作成 - CreateDocumentRequest はテーブルをホストする空の DOCX を作成します。
CreateDocumentRequest createRequest = new CreateDocumentRequest("temp.docx");
wordsApi.createDocument(createRequest);
  1. ヘッダー行の構築 - 最初のレコードのキーが列の順序を定義し、各キーがヘッダーセルになります。
TableRow headerRow = new TableRow();
List<TableCell> headerCells = new ArrayList<>();
for (String col : columns) {
    TableCell cell = new TableCell();
    cell.setText(col);
    headerCells.add(cell);
}
headerRow.setTableCellList(headerCells);
InsertTableRowRequest insertHeader = new InsertTableRowRequest("temp.docx", 0, headerRow);
wordsApi.insertTableRow(insertHeader);
  1. データ行の挿入 - 各 JSON オブジェクトは TableRow に変換され、すべての セル が対応する値の文字列表現を受け取ります。
for (Map<String, Object> rec : records) {
    TableRow dataRow = new TableRow();
    List<TableCell> dataCells = new ArrayList<>();
    for (String col : columns) {
        TableCell cell = new TableCell();
        cell.setText(String.valueOf(rec.get(col)));
        dataCells.add(cell);
    }
    dataRow.setTableCellList(dataCells);
    InsertTableRowRequest insertRow = new InsertTableRowRequest("temp.docx", rowIndex, dataRow);
    wordsApi.insertTableRow(insertRow);
    rowIndex++;
}
  1. XLSXへの変換 - ConvertDocumentRequest は、サービスに一時的な DOCX を XLSX ファイルに変換させ、ローカルに書き込むよう指示します。
ConvertDocumentRequest convertRequest = new ConvertDocumentRequest("temp.docx", "xlsx");
byte[] xlsxBytes = wordsApi.convertDocument(convertRequest);

詳細な API リファレンスについては、Aspose.Words Cloud API Reference をご覧ください。

Aspose.Words Cloud SDK for Java のインストールと構成

プロジェクトの pom.xml に Maven 依存関係を追加します:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words-cloud</artifactId>
    <version>26.9.0</version>
</dependency>

手動インストールを希望する場合は、ダウンロードページから最新の JAR をダウンロードしてください。
前提条件:

  • Java 8 以上。
  • クライアント ID とクライアント シークレットを持つ Aspose Cloud アカウント。
  • api.aspose.cloud へのネットワークアクセス。

コード例に示すように、clientIdclientSecret 変数を設定して SDK を構成します。

結論

JavaでJSONをXLSXに変換することは、Aspose.Words Cloud SDK for Java を使用すると簡単になります。提供されたサンプルは、JSONの読み取り、DOCXテーブルの作成、そしてXLSXブックへの変換手順を案内し、cURLセクションでは言語に依存しない代替手段を示しています。製品ページで価格を確認し、一時ライセンスページ から一時ライセンスを取得して、実稼働環境で適切なライセンスを確保することを忘れないでください。これらのツールを使用すれば、任意のJSONソースからExcelレポートを迅速かつ確実に自動生成できます。

FAQs

JavaでAspose.Words Cloud SDK for Javaを使用してJSONをXLSXに変換する方法は?
上記のコードサンプルまたはREST APIを使用してください。SDKはJSONを読み取り、DOCXテーブルを作成し、単一のAPI呼び出しでXLSXに変換します。

SDKはネストされたJSON構造を処理できますか?
はい。行を挿入する前に、ネストされたオブジェクトを別々の列にフラット化します。これは「Practical Tips」セクションで示されています。

本番環境のデプロイにライセンスは必要ですか?
本番環境では有効なライセンスが必要です。購入オプションは製品ページに掲載されており、テスト用の一時ライセンスは一時ライセンスページで入手できます。

Javaコードを書かずに変換を実行する方法はありますか?
もちろんです。cURLの例は、REST APIを介して同じ結果を得る方法を示しており、任意のプラットフォームから呼び出すことができます。

もっと読む