在 Java 中將 XLSX 轉換為 JPG 是在需要將試算表資料顯示為圖像時的常見需求。 GroupDocs.Conversion Cloud SDK for Java 提供了一個簡單的基於 REST 的庫,允許您直接將 Excel 工作表渲染為 JPG 檔案。本指南將帶您完成所需的設定,展示完整的程式碼範例,說明使用 cURL 的非同步處理,並提供處理大型活頁簿的效能技巧。
將 XLSX 轉換為 JPG 的 Java 步驟
- 新增 Maven 依賴:在
pom.xml中加入 SDK,以便在編譯時可使用該庫。
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-conversion-cloud</artifactId>
<version>23.12</version>
</dependency>
- 初始化轉換客戶端:使用您的客戶端憑證建立
ConversionApi的實例。
import com.groupdocs.conversion.cloud.api.ConversionApi;
import com.groupdocs.conversion.cloud.client.ApiClient;
import com.groupdocs.conversion.cloud.configuration.Configuration;
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
ConversionApi conversionApi = new ConversionApi(new ApiClient(config));
- 配置轉換選項:將輸出格式設定為 JPG,選擇解析度,並在需要時啟用非同步處理。
import com.groupdocs.conversion.cloud.model.requests.ConvertDocumentRequest;
import com.groupdocs.conversion.cloud.model.ConvertOptions;
import com.groupdocs.conversion.cloud.model.JpgConvertOptions;
JpgConvertOptions jpgOptions = new JpgConvertOptions();
jpgOptions.setResolution(300); // 300 DPI for high quality
jpgOptions.setQuality(90); // JPEG quality 0‑100
jpgOptions.setAsync(true); // Enable async conversion
ConvertOptions options = new ConvertOptions();
options.setOutputFormat("JPG");
options.setJpgOptions(jpgOptions);
- 執行轉換:建立一個
ConvertDocumentRequest,使用來源 XLSX 檔案和選項,然後呼叫 API。
import java.io.File;
File sourceFile = new File("sample.xlsx");
ConvertDocumentRequest request = new ConvertDocumentRequest(sourceFile, options);
String jobId = conversionApi.convertDocument(request);
System.out.println("Conversion started, job ID: " + jobId);
- 下載結果:輪詢作業狀態直至完成,然後下載每個生成的 JPG。
import com.groupdocs.conversion.cloud.model.JobStatus;
import com.groupdocs.conversion.cloud.model.responses.JobStatusResponse;
while (true) {
JobStatusResponse statusResponse = conversionApi.getJobStatus(jobId);
JobStatus status = statusResponse.getStatus();
if (status == JobStatus.COMPLETED) break;
Thread.sleep(2000); // wait 2 seconds before next poll
}
conversionApi.downloadResult(jobId, new File("output/"));
System.out.println("JPG files saved to output folder.");
}
如需了解有關請求物件的更多詳細資訊,請參閱 API 參考。
在 Java 中從 XLSX 生成 JPG - 完整代碼示例
此示例演示了一個完整的端到端轉換,該轉換加載 XLSX 工作簿,將每個工作表轉換為單獨的 JPG,並將圖像本地保存。
package com.example.conversion;
import com.groupdocs.conversion.cloud.api.ConversionApi;
import com.groupdocs.conversion.cloud.client.ApiClient;
import com.groupdocs.conversion.cloud.configuration.Configuration;
import com.groupdocs.conversion.cloud.model.requests.ConvertDocumentRequest;
import com.groupdocs.conversion.cloud.model.ConvertOptions;
import com.groupdocs.conversion.cloud.model.JpgConvertOptions;
import com.groupdocs.conversion.cloud.model.responses.JobStatusResponse;
import com.groupdocs.conversion.cloud.model.JobStatus;
import java.io.File;
public class XlsxToJpgDemo {
public static void main(String[] args) throws Exception {
// 1. Configure client
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
ConversionApi api = new ConversionApi(new ApiClient(config));
// 2. Prepare conversion options
JpgConvertOptions jpgOpts = new JpgConvertOptions();
jpgOpts.setResolution(300);
jpgOpts.setQuality(90);
jpgOpts.setAsync(true); // async conversion
ConvertOptions convOpts = new ConvertOptions();
convOpts.setOutputFormat("JPG");
convOpts.setJpgOptions(jpgOpts);
// 3. Create request
File source = new File("input/sample.xlsx");
ConvertDocumentRequest request = new ConvertDocumentRequest(source, convOpts);
// 4. Start conversion
String jobId = api.convertDocument(request);
System.out.println("Job started, ID: " + jobId);
// 5. Wait for completion
while (true) {
JobStatusResponse statusResp = api.getJobStatus(jobId);
if (statusResp.getStatus() == JobStatus.COMPLETED) break;
Thread.sleep(2000);
}
// 6. Download JPG files
api.downloadResult(jobId, new File("output/"));
System.out.println("Conversion finished. JPG files are in the output folder.");
}
}
注意: 此代碼示例演示了核心功能。在將其用於您的項目之前,請確保更新文件路徑(
input/sample.xlsx、output/)以匹配實際位置,驗證所有必需的依賴項已正確安裝,並在開發環境中徹底測試。如果遇到任何問題,請參閱官方文檔或聯繫支援團隊尋求協助。
使用 cURL 將 Excel 轉換為圖像
以下 cURL 命令說明如何使用 REST API 執行相同的 XLSX 轉 JPG 轉換。請將佔位符值替換為您的實際憑證和檔案名稱。
- 取得存取令牌
curl -X POST "https://api.groupdocs.cloud/v1.0/oauth/token" \
-H "Content-Type: application/json" \
-d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
- 上傳 XLSX 檔案
curl -X POST "https://api.groupdocs.cloud/v1.0/storage/file/upload" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@sample.xlsx"
- 開始非同步轉換
curl -X POST "https://api.groupdocs.cloud/v1.0/conversion/convert" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sourceFilePath": "sample.xlsx",
"outputFormat": "JPG",
"options": {
"resolution": 300,
"quality": 90,
"async": true
}
}'
- 檢查作業狀態 (將
JOB_ID替換為前一步返回的值)
curl -X GET "https://api.groupdocs.cloud/v1.0/conversion/jobs/JOB_ID/status" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
- 下載產生的 JPG 檔案
curl -X GET "https://api.groupdocs.cloud/v1.0/conversion/jobs/JOB_ID/result" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.zip
欲取得完整的參數清單,請參閱官方 API 文件。
安裝與設定 GroupDocs.Conversion Cloud SDK for Java
使用 Maven 將 SDK 添加到您的專案中,然後設定您的客戶端憑證。
# Add the dependency (already shown in the Steps section)
mvn install com.groupdocs:groupdocs-conversion-cloud
// Example configuration (same as in the Steps section)
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
您可以從下載頁面下載最新的 JAR 檔案。
XLSX 轉 JPG 的轉換選項
多個選項讓您微調生成的圖像。
| 選項 | 描述 | 範例 |
|---|---|---|
| 解析度 | 輸出圖像的 DPI。較高的值可提升品質,但會增加檔案大小。 | jpgOpts.setResolution(300); |
| 品質 | JPEG 壓縮等級 (0‑100)。 | jpgOpts.setQuality(90); |
| 頁面範圍 | 僅轉換特定工作表。 | jpgOpts.setPageRange("1-3"); |
| 非同步 | 在背景執行轉換並輪詢完成狀態。 | jpgOpts.setAsync(true); |
每個屬性都是 SDK 中 JpgConvertOptions 的一部分。請參閱 API 參考 以獲取完整列表。
提升轉換速度與記憶體使用
- 串流工作表 - 透過啟用非同步模式一次處理一張工作表;這可防止整個活頁簿載入記憶體。
- 調整解析度 - 為您的使用情境選擇最低可接受的 DPI;150‑200 DPI 通常足以滿足網頁預覽需求。
- 批次請求 - 在轉換大量檔案時,將它們以平行批次方式發送,受限於伺服器的 CPU 與網路容量。
- 重複使用 ApiClient - 建立單一
ConversionApi實例,並在多次轉換中重複使用,以避免重複的驗證開銷。
應用這些技巧可以將大型 Excel 檔案的轉換時間縮短最多 40 %。
結論
在 Java 中將 XLSX 轉換為 JPG 變得簡單,只需使用 GroupDocs.Conversion Cloud SDK for Java。按照上述步驟,您可以將每個工作表渲染為高品質的 JPG,利用非同步處理提升可擴展性,並對大型工作簿套用效能優化。請記得為生產環境取得適當的授權;產品頁面提供價格資訊,您亦可透過 臨時授權 取得臨時授權以評估此函式庫。將此功能整合至您的應用程式,即可在不依賴客戶端 Office 安裝的情況下,快速提供 Excel 資料的視覺預覽。
常見問題
如何在 Java 中使用 GroupDocs 執行 XLSX 轉 JPG 轉換?
使用 ConversionApi 類上傳 XLSX 檔案,設定 JpgConvertOptions(解析度、品質、非同步),然後呼叫 convertDocument。SDK 會回傳一個作業 ID,您可以輪詢該 ID,直到 JPG 檔案準備好為止。
我可以在不耗盡記憶體的情況下轉換大型 Excel 工作簿嗎?
是的。啟用非同步轉換並設定合理的解析度。SDK 會依序處理工作表,保持低記憶體使用量。
是否支援將 XLSX 轉換為 JPG 的非同步轉換?
SDK 在 JpgConvertOptions 中提供了 async 標誌。將其設為 true 時,API 會返回作業 ID,允許您稍後檢查狀態並下載結果。
我需要特殊授權才能在生產環境中使用轉換功能嗎?
在生產環境中使用需要有效的 GroupDocs.Conversion Cloud 授權。您可以先從臨時授權頁面獲取臨時授權,然後再購買完整訂閱。
