Η μετατροπή δεδομένων JSON σε ένα φύλλο εργασίας Excel είναι συχνή ανάγκη κατά την αναφορά ή ανάλυση δομημένων πληροφοριών. Το Aspose.Words Cloud SDK for Java παρέχει μια ισχυρή API βασισμένη στο cloud που απλοποιεί αυτή τη μετατροπή σε εφαρμογές Java. Σε αυτόν τον οδηγό θα περάσουμε βήμα‑βήμα πώς να μετατρέψετε JSON σε XLSX σε Java, καλύπτοντας ένα πλήρες παράδειγμα κώδικα, τις ισοδύναμες κλήσεις REST με cURL και βασικές συστάσεις βέλτιστων πρακτικών. Στο τέλος θα μπορείτε να δημιουργείτε αρχεία XLSX από οποιαδήποτε πηγή JSON και να διαχειρίζεστε ένθετες δομές με ευκολία.
Δημιουργία XLSX από JSON με Java - Πλήρες Παράδειγμα Κώδικα
Αυτό το παράδειγμα δείχνει πώς να διαβάσετε ένα αρχείο JSON, να δημιουργήσετε έναν πίνακα DOCX και να τον μετατρέψετε σε XLSX χρησιμοποιώντας το 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);
}
}
}
Σημείωση: Αυτό το παράδειγμα κώδικα δείχνει τη βασική λειτουργικότητα. Πριν το χρησιμοποιήσετε στο έργο σας, βεβαιωθείτε ότι έχετε ενημερώσει τυχόν διαδρομές αρχείων και τιμές ρυθμίσεων ώστε να ταιριάζουν με το πραγματικό σας περιβάλλον, επαληθεύστε ότι όλες οι απαιτούμενες εξαρτήσεις είναι σωστά εγκατεστημένες και δοκιμάστε εκτενώς στο περιβάλλον ανάπτυξής σας. Εάν αντιμετωπίσετε προβλήματα, παρακαλούμε ανατρέξτε στην επίσημη τεκμηρίωση ή επικοινωνήστε με την ομάδα υποστήριξης για βοήθεια.
Μετατροπή JSON σε XLSX μέσω REST API χρησιμοποιώντας cURL
Η ίδια μετατροπή μπορεί να εκτελεστεί χωρίς να γράψετε κώδικα Java, καλώντας απευθείας το Aspose.Words Cloud REST API.
- Αποκτήστε ένα διακριτικό πρόσβασης - το 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"
- Ανεβάστε το αρχείο JSON (το API αναμένει μια πηγή DOCX, οπότε πρώτα ανεβάζουμε ένα placeholder 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"
-
Δημιουργία πίνακα από JSON - αυτό το βήμα γίνεται από το SDK στον κώδικα· με το REST API θα πρέπει να ανεβάσετε ένα προ‑συμπληρωμένο DOCX που ήδη περιέχει τον πίνακα.
-
Μετατρέψτε το 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.
Μετατροπή JSON σε XLSX σε Java - Πώς λειτουργεί ο κώδικας
Ακολουθεί μια σύντομη ανάλυση των βασικών τμημάτων του παραδείγματος Java.
- Αρχικοποίηση API -
WordsApi wordsApi = new WordsApi(clientId, clientSecret);δημιουργεί έναν πιστοποιημένο πελάτη.
WordsApi wordsApi = new WordsApi(clientId, clientSecret);
- Ανάγνωση JSON -
ObjectMapperαπο-σειριοποιεί το αρχείο JSON σε μια λίστα χαρτών, διατηρώντας τη αρχική σειρά των πεδίων.
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> records = mapper.readValue(
new File(jsonPath),
mapper.getTypeFactory().constructCollectionType(List.class, Map.class));
- Δημιουργία DOCX στο σύννεφο -
CreateDocumentRequestδημιουργεί ένα κενό DOCX που θα φιλοξενήσει τον πίνακα.
CreateDocumentRequest createRequest = new CreateDocumentRequest("temp.docx");
wordsApi.createDocument(createRequest);
- Δημιουργία της γραμμής κεφαλίδας - Τα κλειδιά της πρώτης εγγραφής ορίζουν τη σειρά των στηλών, και κάθε κλειδί γίνεται ένα κελί κεφαλίδας.
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);
- Εισαγωγή γραμμών δεδομένων - Κάθε αντικείμενο JSON μετατρέπεται σε
TableRowόπου κάθε cell λαμβάνει την αναπαράσταση σε συμβολοσειρά της αντίστοιχης τιμής.
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++;
}
- Μετατροπή σε 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
Προσθέστε την εξάρτηση Maven στο αρχείο pom.xml του έργου σας:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words-cloud</artifactId>
<version>26.9.0</version>
</dependency>
Κατεβάστε τα πιο πρόσφατα JAR από τη σελίδα λήψης εάν προτιμάτε την χειροκίνητη εγκατάσταση.
Προαπαιτούμενα:
- Java 8 ή νεότερη.
- Λογαριασμός Aspose Cloud με client ID και client secret.
- Πρόσβαση δικτύου στο
api.aspose.cloud.
Διαμορφώστε το SDK ορίζοντας τις μεταβλητές clientId και clientSecret όπως φαίνεται στο παράδειγμα κώδικα.
Συμπέρασμα
Η μετατροπή JSON σε XLSX σε Java γίνεται απλή με το Aspose.Words Cloud SDK for Java. Το παρεχόμενο παράδειγμα σας καθοδηγεί στη ανάγνωση του JSON, τη δημιουργία ενός πίνακα DOCX και τη μετατροπή του σε βιβλίο εργασίας XLSX, ενώ η ενότητα cURL δείχνει μια ανεξάρτητη από γλώσσα εναλλακτική λύση. Θυμηθείτε να εξασφαλίσετε μια κατάλληλη άδεια για χρήση σε παραγωγή· μπορείτε να δείτε τις τιμές στη σελίδα του προϊόντος και να αποκτήσετε προσωρινή άδεια από τη σελίδα προσωρινής άδειας. Με αυτά τα εργαλεία, μπορείτε να αυτοματοποιήσετε τη δημιουργία αναφορών Excel από οποιαδήποτε πηγή JSON γρήγορα και αξιόπιστα.
Συχνές ερωτήσεις
Πώς μπορώ να μετατρέψω JSON σε XLSX σε Java χρησιμοποιώντας Aspose.Words Cloud SDK for Java;
Χρησιμοποιήστε το παραπάνω παράδειγμα κώδικα ή το REST API. Το SDK διαβάζει JSON, δημιουργεί έναν πίνακα DOCX και στη συνέχεια το μετατρέπει σε XLSX με μία κλήση API.
Μπορεί το SDK να χειριστεί ένθετες δομές JSON;
Ναι. Εξαπλώστε τις ένθετες αντικείμενα σε ξεχωριστές στήλες πριν την εισαγωγή γραμμών, όπως επιδεικνύεται στην ενότητα “Πρακτικές Συμβουλές”.
Χρειάζομαι άδεια για παραγωγικές αναπτύξεις;
Μια έγκυρη άδεια απαιτείται για παραγωγή. Οι επιλογές αγοράς αναγράφονται στη σελίδα του προϊόντος, και μια προσωρινή άδεια είναι διαθέσιμη για δοκιμές στη σελίδα προσωρινής άδειας.
Υπάρχει τρόπος να εκτελέσετε τη μετατροπή χωρίς να γράψετε κώδικα Java;
Απολύτως. Το παράδειγμα cURL δείχνει πώς να επιτύχετε το ίδιο αποτέλεσμα μέσω του REST API, το οποίο μπορεί να κληθεί από οποιαδήποτε πλατφόρμα.