การแปลงข้อมูล 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 โดยตรง.

  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 ทำการ deserialize ไฟล์ JSON เป็นรายการของ map โดยคงลำดับฟิลด์เดิมไว้
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 ที่ทุก 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++;
}
  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 ล่าสุดจาก download page หากคุณต้องการการติดตั้งด้วยตนเอง.
ข้อกำหนดเบื้องต้น:

  • 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 ซ้อนกันได้หรือไม่?
ใช่. ทำให้วัตถุที่ซ้อนกันเป็นแถวแบนโดยแยกเป็นคอลัมน์แยกก่อนใส่แถว, ตามที่แสดงในส่วน “Practical Tips”.

ฉันต้องการใบอนุญาตสำหรับการปรับใช้ในสภาพแวดล้อมการผลิตหรือไม่?
ใบอนุญาตที่ถูกต้องจำเป็นสำหรับการผลิต ตัวเลือกการซื้อสามารถดูได้บนหน้าผลิตภัณฑ์ และมีใบอนุญาตชั่วคราวสำหรับการทดสอบที่ หน้าลิขสิทธิ์ชั่วคราว

มีวิธีใดบ้างที่จะทำการแปลงโดยไม่ต้องเขียนโค้ด Java?
แน่นอน ตัวอย่าง cURL แสดงวิธีการบรรลุผลลัพธ์เดียวกันผ่าน REST API ซึ่งสามารถเรียกใช้จากแพลตฟอร์มใดก็ได้.

Read More