在 Java 中將 XLSX 轉換為 JPG 是在需要將試算表資料顯示為圖像時的常見需求。 GroupDocs.Conversion Cloud SDK for Java 提供了一個簡單的基於 REST 的庫,允許您直接將 Excel 工作表渲染為 JPG 檔案。本指南將帶您完成所需的設定,展示完整的程式碼範例,說明使用 cURL 的非同步處理,並提供處理大型活頁簿的效能技巧。

將 XLSX 轉換為 JPG 的 Java 步驟

  1. 新增 Maven 依賴:在 pom.xml 中加入 SDK,以便在編譯時可使用該庫。
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-conversion-cloud</artifactId>
    <version>23.12</version>
</dependency>
  1. 初始化轉換客戶端:使用您的客戶端憑證建立 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));
  1. 配置轉換選項:將輸出格式設定為 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);
  1. 執行轉換:建立一個 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);
  1. 下載結果:輪詢作業狀態直至完成,然後下載每個生成的 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.xlsxoutput/)以匹配實際位置,驗證所有必需的依賴項已正確安裝,並在開發環境中徹底測試。如果遇到任何問題,請參閱官方文檔或聯繫支援團隊尋求協助。

使用 cURL 將 Excel 轉換為圖像

以下 cURL 命令說明如何使用 REST API 執行相同的 XLSX 轉 JPG 轉換。請將佔位符值替換為您的實際憑證和檔案名稱。

  1. 取得存取令牌
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"}'
  1. 上傳 XLSX 檔案
curl -X POST "https://api.groupdocs.cloud/v1.0/storage/file/upload" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@sample.xlsx"
  1. 開始非同步轉換
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
           }
         }'
  1. 檢查作業狀態 (將 JOB_ID 替換為前一步返回的值)
curl -X GET "https://api.groupdocs.cloud/v1.0/conversion/jobs/JOB_ID/status" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
  1. 下載產生的 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 參考 以獲取完整列表。

提升轉換速度與記憶體使用

  1. 串流工作表 - 透過啟用非同步模式一次處理一張工作表;這可防止整個活頁簿載入記憶體。
  2. 調整解析度 - 為您的使用情境選擇最低可接受的 DPI;150‑200 DPI 通常足以滿足網頁預覽需求。
  3. 批次請求 - 在轉換大量檔案時,將它們以平行批次方式發送,受限於伺服器的 CPU 與網路容量。
  4. 重複使用 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 授權。您可以先從臨時授權頁面獲取臨時授權,然後再購買完整訂閱。

閱讀更多