At omdanne JSON data til et Excel‑regneark er et hyppigt behov, når man rapporterer eller analyserer struktureret information. Aspose.Words Cloud SDK for Java leverer en kraftfuld cloud‑baseret API, der forenkler denne konvertering i Java‑applikationer. I denne vejledning vil vi gennemgå, hvordan man konverterer JSON til XLSX i Java, med et komplet kodeeksempel, de tilsvarende REST‑kald med cURL og væsentlige bedste‑praksis‑anbefalinger. Når du er færdig, vil du kunne generere XLSX‑filer fra enhver JSON‑kilde og håndtere indlejrede strukturer med lethed.

Generer XLSX fra JSON ved hjælp af Java - Fuldstændigt kodeeksempel

Dette eksempel demonstrerer, hvordan man læser en JSON‑fil, opbygger en DOCX tabel, og konverterer den til XLSX ved hjælp af 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);
        }
    }
}

Note: Dette kodeeksempel demonstrerer kernefunktionaliteten. Før du bruger det i dit projekt, skal du sikre dig, at du opdaterer alle filstier og konfigurationsværdier, så de matcher dit faktiske miljø, bekræfter at alle nødvendige afhængigheder er korrekt installeret, og tester grundigt i dit udviklingsmiljø. Hvis du støder på problemer, så henvis til den officielle dokumentation eller kontakt supportteamet for assistance.

JSON til XLSX-konvertering via REST API ved hjælp af cURL

Den samme konvertering kan udføres uden at skrive Java‑kode ved at kalde Aspose.Words Cloud REST API direkte.

  1. Få en adgangstoken - API’et bruger 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. Upload JSON-filen (API’en forventer en DOCX-kilde, så vi først uploader en pladsholder-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. Opret en tabel fra JSON - dette trin håndteres af SDK’en i kode; med REST API’en kan du uploade et forudfyldt DOCX, der allerede indeholder tabellen.

  2. Konverter DOCX til XLSX.

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

For en komplet liste over parametre, se den officielle API-dokumentation.

Konverter JSON til XLSX i Java - Sådan fungerer koden

Nedenfor er en kort oversigt over de vigtigste sektioner i Java‑eksemplet.

  1. API-initialisering - WordsApi wordsApi = new WordsApi(clientId, clientSecret); opretter en godkendt klient.
WordsApi wordsApi = new WordsApi(clientId, clientSecret);
  1. Læse JSON - ObjectMapper deserialiserer JSON-filen til en liste af kort, og bevarer den oprindelige feltrækkefølge.
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> records = mapper.readValue(
        new File(jsonPath),
        mapper.getTypeFactory().constructCollectionType(List.class, Map.class));
  1. Oprettelse af en DOCX i skyen - CreateDocumentRequest opretter en tom DOCX, som vil indeholde tabellen.
CreateDocumentRequest createRequest = new CreateDocumentRequest("temp.docx");
wordsApi.createDocument(createRequest);
  1. Opbygning af header‑rækken – Den første posts nøgler definerer kolonnerekkefølgen, og hver nøgle bliver til en header‑celle.
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. Indsættelse af data rækker - Hvert JSON-objekt omdannes til en TableRow, hvor hver celle får den strengrepræsentation af den tilsvarende værdi.
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. Konvertering til XLSX - ConvertDocumentRequest fortæller tjenesten at omdanne den midlertidige DOCX til en XLSX‑fil, som derefter skrives lokalt.
ConvertDocumentRequest convertRequest = new ConvertDocumentRequest("temp.docx", "xlsx");
byte[] xlsxBytes = wordsApi.convertDocument(convertRequest);

For detaljeret API-reference, besøg Aspose.Words Cloud API Reference.

Installation og konfiguration af Aspose.Words Cloud SDK for Java

Tilføj Maven‑afhængigheden til dit projekts pom.xml:

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

Download de nyeste JAR-filer fra downloadside hvis du foretrækker manuel installation.
Forudsætninger:

  • Java 8 eller nyere.
  • En Aspose Cloud-konto med klient‑ID og klient‑hemmelighed.
  • Netværksadgang til api.aspose.cloud.

Konfigurer SDK’en ved at indstille variablerne clientId og clientSecret som vist i kodeeksemplet.

Konklusion

Konvertering af JSON til XLSX i Java bliver enkelt med Aspose.Words Cloud SDK for Java. Det medfølgende eksempel guider dig gennem læsning af JSON, opbygning af en DOCX‑tabel og konvertering til en XLSX‑projektmappe, mens cURL‑sektionen viser et sprog‑uafhængigt alternativ. Husk at sikre en korrekt licens til produktionsbrug; du kan se priser på produktsiden og få en midlertidig licens fra midlertidig licensside. Med disse værktøjer i hånden kan du automatisere generering af Excel‑rapporter fra enhver JSON‑kilde hurtigt og pålideligt.

Ofte stillede spørgsmål

Hvordan konverterer jeg JSON til XLSX i Java ved hjælp af Aspose.Words Cloud SDK for Java?
Brug kodeeksemplet ovenfor eller REST API’en. SDK’en læser JSON, opretter en DOCX-tabel og konverterer derefter til XLSX med et enkelt API-kald.

Kan SDK’en håndtere indlejrede JSON‑strukturer?
Ja. Flad indlejrede objekter ud i separate kolonner, før du indsætter rækker, som demonstreret i afsnittet “Praktiske tips”.

Skal jeg have en licens til produktionsimplementeringer?
En gyldig licens er påkrævet til produktion. Købsoptioner er listet på produktsiden, og en midlertidig licens er tilgængelig til test på den midlertidige licensside.

Er der en måde at udføre konverteringen på uden at skrive Java-kode?
Absolut. cURL‑eksemplet viser, hvordan man opnår det samme resultat via REST‑API’et, som kan kaldes fra enhver platform.

Læs mere