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