在 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/)以匹配实际位置,验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如果遇到任何问题,请参考官方文档或联系支持团队获取帮助。

Convert Excel to Image Using cURL

以下 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 %。

结论

XLSX 转 JPG 的 Java 转换变得简单,只需使用 GroupDocs.Conversion Cloud SDK for Java。按照上述步骤,您可以将每个工作表渲染为高质量的 JPG,利用异步处理实现更好的可扩展性,并对大型工作簿应用性能优化。请记得为生产部署获取合适的许可证;产品页面上提供了定价详情,您还可以通过 临时许可证 开始评估该库。将此功能集成到您的应用程序中,以在无需客户端 Office 安装的情况下提供 Excel 数据的快速可视化预览。

FAQs

如何在 Java 中使用 GroupDocs 执行 XLSX 到 JPG 的转换?
使用 ConversionApi 类上传 XLSX 文件,设置 JpgConvertOptions(分辨率、质量、异步),并调用 convertDocument。SDK 返回一个作业 ID,您可以轮询该 ID,直到 JPG 文件准备就绪。

我可以在不耗尽内存的情况下转换大型 Excel 工作簿吗?
是的。启用异步转换并设置合理的分辨率。SDK 按顺序处理工作表,保持内存使用低。

是否支持将 XLSX 转换为 JPG 的异步转换?
SDK 在 JpgConvertOptions 中提供了 async 标志。将其设置为 true 时,API 将返回作业 ID,您可以稍后检查状态并下载结果。

在生产环境中使用转换功能是否需要特殊许可证?
A valid GroupDocs.Conversion Cloud license is required for production use. You can start with a temporary license from the temporary license page before purchasing a full subscription.

阅读更多