تبدیل دادههای JSON به یک صفحهگسترده Excel یک نیاز مکرر هنگام گزارشگیری یا تجزیه و تحلیل اطلاعات ساختار یافته است. Aspose.Words Cloud SDK for Java یک API قدرتمند مبتنی بر ابر ارائه میدهد که این تبدیل را در برنامههای Java ساده میکند. در این راهنما نحوه تبدیل JSON به XLSX در Java را گام به گام بررسی میکنیم، شامل یک مثال کامل کد، تماسهای REST معادل با cURL، و توصیههای اساسی بهترین روشها. در پایان میتوانید فایلهای XLSX را از هر منبع JSON تولید کنید و ساختارهای تو در تو را به راحتی مدیریت کنید.
ایجاد XLSX از JSON با استفاده از Java - مثال کامل کد
این مثال نشان میدهد که چگونه یک فایل JSON را بخوانید، یک جدول DOCX بسازید و آن را با استفاده از Aspose.Words Cloud SDK for Java به XLSX تبدیل کنید.
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 با 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 ایجاد میکند و سپس آن را با یک تماس API به XLSX تبدیل مینماید.
آیا SDK میتواند ساختارهای JSON تو در تو را مدیریت کند؟
بله. اشیاء تو در تو را قبل از وارد کردن ردیفها به ستونهای جداگانه مسطح کنید، همانطور که در بخش “نکات عملی” نشان داده شده است.
آیا برای استقرارهای تولیدی به مجوز نیاز دارم؟
برای تولید یک مجوز معتبر لازم است. گزینههای خرید در صفحه محصول فهرست شدهاند و یک مجوز موقت برای تست در صفحه مجوز موقت موجود است.
آیا راهی برای انجام تبدیل بدون نوشتن کد Java وجود دارد؟
بهطور قطع. مثال cURL نشان میدهد که چگونه میتوان همان نتیجه را از طریق REST API به دست آورد که میتواند از هر پلتفرمی فراخوانی شود.