在 Java 中將 CSV 轉換為 XLSX 是當應用程式需要與 Excel 使用者交換資料時的常見需求。 Aspose.HTML Cloud SDK for Java 提供功能強大的雲端 API,能有效處理此轉換。在本指南中,您將了解如何設定 Maven 依賴項、使用串流讀取 CSV 資料、產生 XLSX 工作簿,並透過 REST API 呼叫轉換。完成後,您將擁有一個完整、可投入生產的範例,可依需求套用於自己的專案。

先決條件與設定

開始之前,請確保您已具備以下項目:

  • 已安裝 Java 17 或更新版本。
  • 具有客戶端 ID 和客戶端密鑰的 Aspose Cloud 帳戶。
  • 已安裝 Maven 以進行相依性管理。

將 Aspose.HTML Cloud SDK for Java 添加到您的專案中:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-html-cloud</artifactId>
    <version>23.12</version>
</dependency>

或者,您可以直接從命令列安裝套件:

mvn install com.aspose:aspose-html-cloud

下載頁面下載最新的 SDK 二進位檔。解決相依性後,您即可開始編寫程式碼。下一節將一步步帶您完成實作。

CSV 轉換為 XLSX(Java):逐步說明

步驟 1:使用 Java Streams 載入來源 CSV

逐行讀取 CSV 可保持低記憶體使用量,這對大型檔案至關重要。

Path csvPath = Paths.get("input.csv");
List<String> csvLines = Files.readAllLines(csvPath, StandardCharsets.UTF_8);

第 2 步:初始化 Aspose.HTML Cloud Client

使用您的憑證建立客戶端實例。客戶端類別已在 API 參考 中記錄。

HtmlApi htmlApi = new HtmlApi();
htmlApi.getConfiguration().setClientId("YOUR_CLIENT_ID");
htmlApi.getConfiguration().setClientSecret("YOUR_CLIENT_SECRET");

第 3 步:將 CSV 內容轉換為 XLSX

SDK 接受 CSV 資料作為字串,並返回二進位 XLSX 串流。

String csvContent = String.join("\n", csvLines);
ConvertDocumentRequest request = new ConvertDocumentRequest()
        .outputFormat("xlsx")
        .inputFileContent(csvContent.getBytes(StandardCharsets.UTF_8));
byte[] xlsxBytes = htmlApi.convertDocument(request);

第 4 步:保存生成的 XLSX 文件

將返回的位元組陣列寫入磁碟上的檔案。

Path xlsxPath = Paths.get("output.xlsx");
Files.write(xlsxPath, xlsxBytes);

步驟 5:驗證轉換(可選)

您可以使用 Apache POI 或任何試算表檢視器快速開啟生成的檔案,以確保資料格式正確。

完整程式碼範例:CSV 轉 XLSX 轉換 使用 Aspose.HTML Cloud SDK

以下程式將所有步驟整合成一個可執行的類別。

import java.nio.file.*;
import java.nio.charset.StandardCharsets;
import java.util.List;
import com.aspose.html.cloud.api.HtmlApi;
import com.aspose.html.cloud.model.ConvertDocumentRequest;

public class CsvToXlsxConverter {
    public static void main(String[] args) throws Exception {
        // 1. Load CSV file
        Path csvPath = Paths.get("input.csv");
        List<String> csvLines = Files.readAllLines(csvPath, StandardCharsets.UTF_8);
        String csvContent = String.join("\n", csvLines);

// 2. Initialise Aspose.HTML Cloud client
        HtmlApi htmlApi = new HtmlApi();
        htmlApi.getConfiguration().setClientId("YOUR_CLIENT_ID");
        htmlApi.getConfiguration().setClientSecret("YOUR_CLIENT_SECRET");

// 3. Convert CSV to XLSX
        ConvertDocumentRequest request = new ConvertDocumentRequest()
                .outputFormat("xlsx")
                .inputFileContent(csvContent.getBytes(StandardCharsets.UTF_8));
        byte[] xlsxBytes = htmlApi.convertDocument(request);

// 4. Save XLSX file
        Path xlsxPath = Paths.get("output.xlsx");
        Files.write(xlsxPath, xlsxBytes);

System.out.println("Conversion completed. XLSX saved to " + xlsxPath.toAbsolutePath());
    }
}

注意: 此程式碼範例展示了核心功能。在將其用於您的專案之前,請確保更新檔案路徑(input.csvoutput.xlsx),驗證所有必要的相依項目已正確安裝,並在開發環境中徹底測試。如果遇到任何問題,請參閱官方文件或聯繫支援團隊尋求協助。

使用 cURL 呼叫 Aspose.HTML Cloud 生成 XLSX

相同的轉換也可以透過 REST API 執行。以下是所需的 cURL 命令。

  1. 驗證並取得存取權杖
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"

回應中包含一個 access_token,您將在後續呼叫中使用它。

  1. 上傳 CSV 檔案
curl -X POST "https://api.aspose.cloud/v4.0/html/storage/file/input.csv" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@input.csv"
  1. 執行轉換
curl -X POST "https://api.aspose.cloud/v4.0/html/convert?outputFormat=xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"inputPath":"input.csv"}' \
     -o output.xlsx
  1. 下載 XLSX 檔案 (如果您選擇了不同的輸出位置)
curl -X GET "https://api.aspose.cloud/v4.0/html/storage/file/output.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.xlsx

欲取得完整的參數清單,請參閱官方 API 文件

大型 CSV 轉 XLSX 轉換的效能考量

  • 串流 CSV 輸入 - 使用 Files.lines 或緩衝讀取器一次處理一列,而不是將整個檔案載入記憶體。
  • 批次上傳 - 處理大於 100 MB 的檔案時,將 CSV 分割成較小的區塊,分別轉換每個區塊,必要時再合併產生的 XLSX 部分。
  • 啟用非同步轉換 - 在轉換請求中加入查詢參數 async=true,讓雲端服務在背景處理檔案,減少客戶端等待時間。
  • 調整輸出設定 - 若不需要精確的 cell 樣式,將 preserveFormatting 標誌設為 false;這可減少傳輸負載並加快轉換速度。

結論

本指南示範了如何在 Java 中使用 Aspose.HTML Cloud SDK for Java 執行 CSV 轉換為 XLSX。您學會了如何配置 Maven、使用串流讀取 CSV 資料、呼叫雲端 API,並有效處理大型檔案。請記住,生產環境需要商業授權;您可以從臨時授權頁面取得臨時授權,並在產品頁面上查看完整的定價選項。掌握這些工具後,您即可將無縫的 CSV‑to‑XLSX 功能整合到任何 Java 應用程式中。

常見問題

  • 什麼是處理包含在引號字段內逗號的 CSV 檔案的最佳方法?
    在將資料傳遞給轉換 API 之前,使用像 Apache Commons CSV 這樣的強大 CSV 解析器。該解析器會尊重引號分隔符,確保準確的行提取。

  • Aspose.HTML Cloud SDK 是否支援在沒有中間 HTML 步驟的情況下直接輸出 XLSX?
    是的。convertDocument 方法可以接受原始 CSV 內容,直接產生 XLSX 檔案,如程式碼範例所示。

  • 我可以在本機執行轉換而不使用雲端嗎?
    Aspose.HTML Cloud SDK 是基於雲端的服務,因此需要網際網路連線和有效的憑證。若是本地部署情境,請考慮使用 Aspose.Cells,這是另一個獨立的產品。

  • 如何監控非同步轉換請求的狀態?
    當使用 async=true 時,API 會返回一個作業 ID。輪詢 /jobs/{jobId} 端點以檢查狀態,然後在作業完成後下載結果。

閱讀更多