Trasformare i dati JSON in un foglio di calcolo Excel è una necessità frequente quando si redigono report o si analizzano informazioni strutturate. Aspose.Words Cloud SDK for Java offre un’API cloud potente che semplifica questa conversione nelle applicazioni Java. In questa guida vedremo come convertire JSON in XLSX in Java, coprendo un esempio di codice completo, le chiamate REST equivalenti con cURL e le raccomandazioni essenziali di best‑practice. Alla fine sarai in grado di generare file XLSX da qualsiasi sorgente JSON e gestire strutture annidate con facilità.

Genera XLSX da JSON usando Java - Esempio di codice completo

Questo esempio dimostra come leggere un file JSON, creare una tabella DOCX e convertirla in XLSX utilizzando Aspose.Words Cloud SDK per Java.

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);
        }
    }
}

Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare tutti i percorsi dei file e i valori di configurazione per corrispondere al tuo ambiente reale, verifica che tutte le dipendenze richieste siano correttamente installate e testa accuratamente nel tuo ambiente di sviluppo. Se incontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.

Conversione da JSON a XLSX tramite REST API usando cURL

La stessa conversione può essere eseguita senza scrivere codice Java chiamando direttamente l’Aspose.Words Cloud REST API.

  1. Ottieni un token di accesso - l’API utilizza 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. Carica il file JSON (l’API si aspetta una sorgente DOCX, quindi prima carichiamo un DOCX segnaposto).
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. Crea una tabella da JSON - questo passaggio è gestito dall’SDK nel codice; con l’API REST dovresti caricare un DOCX pre‑riempito che già contiene la tabella.

  2. Converti il DOCX in XLSX.

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

Per un elenco completo dei parametri, consulta la documentazione API ufficiale.

Converti JSON in XLSX in Java - Come funziona il codice

Di seguito è riportata una sintesi delle sezioni chiave nell’esempio Java.

  1. Inizializzazione API - WordsApi wordsApi = new WordsApi(clientId, clientSecret); crea un client autenticato.
WordsApi wordsApi = new WordsApi(clientId, clientSecret);
  1. Lettura JSON - ObjectMapper deserializza il file JSON in una lista di mappe, preservando l’ordine originale dei campi.
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> records = mapper.readValue(
        new File(jsonPath),
        mapper.getTypeFactory().constructCollectionType(List.class, Map.class));
  1. Creare un DOCX nel cloud - CreateDocumentRequest crea un DOCX vuoto che ospiterà la tabella.
CreateDocumentRequest createRequest = new CreateDocumentRequest("temp.docx");
wordsApi.createDocument(createRequest);
  1. Creazione della riga di intestazione - Le chiavi del primo record definiscono l’ordine delle colonne e ogni chiave diventa una cella di intestazione.
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. Inserimento di righe di dati - Ogni oggetto JSON viene trasformato in un TableRow dove ogni cella riceve la rappresentazione stringa del valore corrispondente.
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. Conversione in XLSX - ConvertDocumentRequest indica al servizio di trasformare il DOCX temporaneo in un file XLSX, che viene quindi scritto localmente.
ConvertDocumentRequest convertRequest = new ConvertDocumentRequest("temp.docx", "xlsx");
byte[] xlsxBytes = wordsApi.convertDocument(convertRequest);

Per un riferimento API dettagliato, visita il Aspose.Words Cloud API Reference.

Installazione e configurazione Aspose.Words Cloud SDK for Java

Aggiungi la dipendenza Maven al file pom.xml del tuo progetto:

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

Scarica gli ultimi JAR dalla pagina di download se preferisci l’installazione manuale.
Prerequisiti:

  • Java 8 o versioni successive.
  • Un account Aspose Cloud con ID client e segreto client.
  • Accesso di rete a api.aspose.cloud.

Configura l’SDK impostando le variabili clientId e clientSecret come mostrato nell’esempio di codice.

Conclusione

Convertire JSON in XLSX in Java diventa semplice con il Aspose.Words Cloud SDK for Java. L’esempio fornito ti guida nella lettura del JSON, nella costruzione di una tabella DOCX e nella conversione in un workbook XLSX, mentre la sezione cURL mostra un’alternativa indipendente dal linguaggio. Ricorda di ottenere una licenza adeguata per l’uso in produzione; puoi visualizzare i prezzi sulla pagina del prodotto e ottenere una licenza temporanea dalla pagina della licenza temporanea. Con questi strumenti a disposizione, puoi automatizzare la generazione di report Excel da qualsiasi fonte JSON in modo rapido e affidabile.

FAQs

Come converto JSON in XLSX in Java usando Aspose.Words Cloud SDK for Java?
Usa l’esempio di codice sopra o l’API REST. L’SDK legge JSON, crea una tabella DOCX e poi la converte in XLSX con una singola chiamata API.

L’SDK può gestire strutture JSON annidate?
Sì. Appiattire gli oggetti annidati in colonne separate prima di inserire le righe, come mostrato nella sezione “Practical Tips”.

Ho bisogno di una licenza per le distribuzioni in produzione?
È necessaria una licenza valida per la produzione. Le opzioni di acquisto sono elencate nella pagina del prodotto e una licenza temporanea è disponibile per i test nella pagina della licenza temporanea.

C’è un modo per eseguire la conversione senza scrivere codice Java?
Assolutamente. L’esempio cURL mostra come ottenere lo stesso risultato tramite l’API REST, che può essere chiamata da qualsiasi piattaforma.

Leggi di più