تحويل بيانات JSON إلى جدول بيانات Excel هو حاجة متكررة عند إعداد التقارير أو تحليل المعلومات المهيكلة. يوفر Aspose.Words Cloud SDK for Java واجهة برمجة تطبيقات سحابية قوية تُبسّط هذا التحويل في تطبيقات 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 مباشرةً.

  1. الحصول على رمز وصول - يستخدم 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"
  1. تحميل ملف 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"
  1. إنشاء جدول من JSON - هذه الخطوة يتم معالجتها بواسطة SDK في الكود؛ مع REST API ستقوم بتحميل ملف DOCX مملوء مسبقًا يحتوي بالفعل على الجدول.

  2. تحويل ملف 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.

  1. تهيئة API - WordsApi wordsApi = new WordsApi(clientId, clientSecret); ينشئ عميلًا موثوقًا.
WordsApi wordsApi = new WordsApi(clientId, clientSecret);
  1. قراءة JSON - ObjectMapper يقوم بتحويل ملف JSON إلى قائمة من الخرائط، مع الحفاظ على ترتيب الحقول الأصلي.
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> records = mapper.readValue(
        new File(jsonPath),
        mapper.getTypeFactory().constructCollectionType(List.class, Map.class));
  1. إنشاء مستند DOCX في السحابة - CreateDocumentRequest ينشئ مستند DOCX فارغ سيستضيف الجدول.
CreateDocumentRequest createRequest = new CreateDocumentRequest("temp.docx");
wordsApi.createDocument(createRequest);
  1. بناء صف الرأس - مفاتيح السجل الأول تحدد ترتيب الأعمدة، ويصبح كل مفتاح خلية رأس.
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. إدراج صفوف البيانات - يتم تحويل كل كائن 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++;
}
  1. التحويل إلى 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. يقرأ SDK ملف JSON، وينشئ جدول DOCX، ثم يحوله إلى XLSX باستدعاء API واحد.

هل يمكن لـ SDK التعامل مع هياكل JSON المتداخلة؟
نعم. قم بتسطيح الكائنات المتداخلة إلى أعمدة منفصلة قبل إدراج الصفوف، كما هو موضح في قسم “نصائح عملية”.

هل أحتاج إلى ترخيص للنشر في بيئات الإنتاج؟
ترخيص صالح مطلوب للإنتاج. خيارات الشراء مدرجة في صفحة المنتج، وتتوفر ترخيص مؤقت للاختبار في صفحة الترخيص المؤقت.

هل هناك طريقة لإجراء التحويل دون كتابة كود Java؟
بالطبع. يُظهر مثال cURL كيفية تحقيق النتيجة نفسها عبر REST API، والتي يمكن استدعاؤها من أي منصة.

اقرأ المزيد