在 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.csv、output.xlsx),驗證所有必要的相依項目已正確安裝,並在開發環境中徹底測試。如果遇到任何問題,請參閱官方文件或聯繫支援團隊尋求協助。
使用 cURL 呼叫 Aspose.HTML Cloud 生成 XLSX
相同的轉換也可以透過 REST API 執行。以下是所需的 cURL 命令。
- 驗證並取得存取權杖
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,您將在後續呼叫中使用它。
- 上傳 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"
- 執行轉換
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
- 下載 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}端點以檢查狀態,然後在作業完成後下載結果。