Transformer les données JSON en une feuille de calcul Excel est un besoin fréquent lors de la création de rapports ou de l’analyse d’informations structurées. Aspose.Words Cloud SDK for Java fournit une API puissante basée sur le cloud qui simplifie cette conversion dans les applications Java. Dans ce guide, nous parcourrons comment convertir JSON en XLSX avec Java, en couvrant un exemple de code complet, les appels REST équivalents avec cURL, et des recommandations essentielles de bonnes pratiques. À la fin, vous serez capable de générer des fichiers XLSX à partir de n’importe quelle source JSON et de gérer facilement les structures imbriquées.

Générer XLSX à partir de JSON avec Java - Exemple de code complet

Cet exemple montre comment lire un fichier JSON, créer un tableau DOCX et le convertir en XLSX en utilisant Aspose.Words Cloud SDK for 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);
        }
    }
}

Remarque : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu’ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées, et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.

Conversion JSON en XLSX via l’API REST avec cURL

La même conversion peut être effectuée sans écrire de code Java en appelant directement l’Aspose.Words Cloud REST API.

  1. Obtenir un jeton d’accès - l’API utilise 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. Téléverser le fichier JSON (l’API attend une source DOCX, donc nous téléchargeons d’abord un DOCX factice).
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. Créer un tableau à partir de JSON - cette étape est gérée par le SDK dans le code ; avec l’API REST vous téléchargeriez un DOCX pré‑rempli qui contient déjà le tableau.

  2. Convertir le DOCX en XLSX.

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

Pour une liste complète des paramètres, consultez la documentation officielle de l’API.

Convertir JSON en XLSX en Java - Comment le code fonctionne

Voici une brève répartition des sections clés de l’exemple Java.

  1. Initialisation de l’API - WordsApi wordsApi = new WordsApi(clientId, clientSecret); crée un client authentifié.
WordsApi wordsApi = new WordsApi(clientId, clientSecret);
  1. Lecture du JSON - ObjectMapper désérialise le fichier JSON en une liste de maps, en conservant l’ordre d’origine des champs.
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> records = mapper.readValue(
        new File(jsonPath),
        mapper.getTypeFactory().constructCollectionType(List.class, Map.class));
  1. Créer un DOCX dans le cloud - CreateDocumentRequest crée un DOCX vide qui hébergera le tableau.
CreateDocumentRequest createRequest = new CreateDocumentRequest("temp.docx");
wordsApi.createDocument(createRequest);
  1. Construire la ligne d’en-tête - Les clés du premier enregistrement définissent l’ordre des colonnes, et chaque clé devient une cellule d’en-tête.
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. Insertion de lignes de données - Chaque objet JSON est transformé en un TableRow où chaque cellule reçoit la représentation sous forme de chaîne de la valeur correspondante.
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. Conversion en XLSX - ConvertDocumentRequest indique au service de transformer le DOCX temporaire en un fichier XLSX, qui est ensuite écrit localement.
ConvertDocumentRequest convertRequest = new ConvertDocumentRequest("temp.docx", "xlsx");
byte[] xlsxBytes = wordsApi.convertDocument(convertRequest);

Pour une référence API détaillée, consultez le Aspose.Words Cloud API Reference.

Installation et configuration d’Aspose.Words Cloud SDK for Java

Ajoutez la dépendance Maven à votre pom.xml du projet :

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

Téléchargez les derniers JAR depuis la page de téléchargement si vous préférez une installation manuelle.
Prérequis :

  • Java 8 ou version supérieure.
  • Un compte Aspose Cloud avec l’ID client et le secret client.
  • Accès réseau à api.aspose.cloud.

Configurez le SDK en définissant les variables clientId et clientSecret comme indiqué dans l’exemple de code.

Conclusion

La conversion de JSON en XLSX en Java devient simple avec le Aspose.Words Cloud SDK for Java. L’exemple fourni vous guide à travers la lecture du JSON, la création d’un tableau DOCX et la conversion en classeur XLSX, tandis que la section cURL montre une alternative indépendante du langage. N’oubliez pas d’obtenir une licence appropriée pour une utilisation en production ; vous pouvez consulter les tarifs sur la page du produit et obtenir une licence temporaire depuis la page de licence temporaire. Avec ces outils, vous pouvez automatiser la génération de rapports Excel à partir de n’importe quelle source JSON rapidement et de manière fiable.

FAQ

Comment convertir du JSON en XLSX en Java en utilisant Aspose.Words Cloud SDK for Java ?
Utilisez l’exemple de code ci‑dessus ou l’API REST. Le SDK lit le JSON, crée un tableau DOCX, puis le convertit en XLSX avec un seul appel d’API.

Le SDK peut-il gérer les structures JSON imbriquées ?
Oui. Aplatissez les objets imbriqués en colonnes séparées avant d’insérer les lignes, comme démontré dans la section “Conseils pratiques”.

Ai‑je besoin d’une licence pour les déploiements en production ?
Une licence valide est requise pour la production. Les options d’achat sont répertoriées sur la page du produit, et une licence temporaire est disponible pour les tests sur la page de licence temporaire.

Existe-t-il un moyen d’effectuer la conversion sans écrire de code Java ?
Absolument. L’exemple cURL montre comment obtenir le même résultat via l’API REST, qui peut être appelée depuis n’importe quelle plateforme.

Read More