Перетворення даних JSON у електронну таблицю Excel є частою потребою під час звітування або аналізу структурованої інформації. Aspose.Words Cloud SDK for Java надає потужний хмарний API, який спрощує це перетворення в 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 джерело, тому спочатку ми завантажуємо заповнювач 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, де кожна клітинка отримує рядкове представлення відповідного значення.
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 для 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 з ідентифікатором клієнта та секретом клієнта.
- Мережевий доступ до
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, який можна викликати з будь-якої платформи.