在构建报表仪表板或电子邮件摘要时,生成电子表格数据的可视化预览是常见需求。Conholdate.Total for Java 提供了强大的 SDK,简化了在 Java 应用程序中将 Excel 转换为图像的过程。在本指南中,您将了解如何加载 XLSX 工作簿,配置 PNG 输出,并为整个工作表、图表或特定范围生成图像文件。完成后,您将拥有一个可直接运行的代码示例,能够适配到您自己的项目中。
将 Excel 文件转换为图像对您的应用程序的需求
开发人员经常需要将电子表格内容转换为静态图像,以用于网页预览、PDF 报告或移动端缩略图。通常的需求包括保留cell 格式、渲染嵌入的图表,并可选地将转换限制在单个范围内。手动完成这些任务——打开 Excel、截屏并保存——既不可扩展,又可能导致结果不一致。
可靠解决方案的技术约束包括:支持 XLSX 文件、能够包含图表和公式、可配置的图像分辨率,以及对多个工作表的批处理。转换必须在服务器或桌面环境中运行,而无需 Microsoft Office。
选择 Conholdate.Total for Java 来完成工作
Conholdate.Total for Java 提供统一的 API,涵盖所有所需功能。其 ExcelLoadOptions 让您加载图表和公式,而 ImageConvertOptions 则提供对格式、质量和尺寸的细粒度控制。该 SDK 可在任何 Java 运行时上运行,仅需 Maven 依赖,并能高效处理大型工作簿。
有关详细的 API 使用,请参阅官方文档。 类如 Conversion、ExcelLoadOptions 和 ImageConvertOptions 的完整参考可在API 参考中找到。 您可以从发布页面下载最新的库。
在 Java 中实现 Excel 转图片转换
转换过程可以分解为几个明确的步骤。以下章节将逐步引导您了解每个部分,并直接从完整示例中摘取简短的代码片段。
安装 Conholdate.Total for Java via Maven
将 Conholdate Maven 仓库和 SDK 依赖项添加到您的 pom.xml 中:
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
加载带有图表和公式支持的 Excel 文件
创建一个 ExcelLoadOptions 实例,启用图表和公式加载,并使用文件流初始化 Conversion 对象:
ExcelLoadOptions loadOptions = new ExcelLoadOptions();
loadOptions.setLoadCharts(true);
loadOptions.setLoadFormulas(true);
Conversion conversion = new Conversion(new FileInputStream("input.xlsx"), loadOptions);
配置 PNG 的图像输出选项
设置所需的图像格式、质量和尺寸。宽度固定,而高度保持纵横比:
ImageConvertOptions imgOptions = new ImageConvertOptions();
imgOptions.setFormat(ImageConvertOptions.ImageFormat.PNG);
imgOptions.setQuality(90);
imgOptions.setWidth(1200);
imgOptions.setHeight(0); // preserve aspect ratio
将每个工作表或范围转换为 PNG 图像
遍历工作簿的页面(工作表)并转换每一个。您还可以通过调整 pageNumber 或使用其他加载选项来针对特定范围。
int pageCount = conversion.getPageCount();
for (int i = 1; i <= pageCount; i++) {
imgOptions.setPageNumber(i);
String outputPath = "output_images/sheet_" + i + ".png";
conversion.convert(outputPath, imgOptions);
}
验证输出并处理异常
在 try‑catch 块中包装转换逻辑,并确保在开始之前输出目录已存在:
try {
Files.createDirectories(Paths.get("output_images"));
// conversion code here
System.out.println("Excel to image conversion completed successfully.");
} catch (Exception ex) {
System.err.println("Conversion failed: " + ex.getMessage());
ex.printStackTrace();
}
上述步骤演示了如何使用 Conholdate.Total SDK 将 Excel 转换为图像,并为您提供处理图表、范围和完整工作表的灵活性。
完整代码示例:将 Excel 转换为图像(支持完整工作表)
下面的代码展示了上述步骤中描述的完整、可直接运行的实现。
import java.io.FileInputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import com.groupdocs.conversion.Conversion;
import com.groupdocs.conversion.options.load.ExcelLoadOptions;
import com.groupdocs.conversion.options.convert.ImageConvertOptions;
import com.groupdocs.conversion.options.convert.ImageConvertOptions.ImageFormat;
public class ExcelToImageConverter {
public static void main(String[] args) {
String inputFile = "input.xlsx";
String outputFolder = "output_images";
try {
// Create output directory if it does not exist
Files.createDirectories(Paths.get(outputFolder));
// Load options: include charts and formulas during conversion
ExcelLoadOptions loadOptions = new ExcelLoadOptions();
loadOptions.setLoadCharts(true);
loadOptions.setLoadFormulas(true);
// Initialize conversion with the Excel file and load options
try (Conversion conversion = new Conversion(new FileInputStream(inputFile), loadOptions)) {
// Determine how many pages (sheets) the workbook has
int pageCount = conversion.getPageCount();
// Configure image output options
ImageConvertOptions imgOptions = new ImageConvertOptions();
imgOptions.setFormat(ImageFormat.PNG); // Output format
imgOptions.setQuality(90); // Quality (relevant for JPEG)
imgOptions.setWidth(1200); // Desired width, height will keep aspect ratio
imgOptions.setHeight(0); // 0 means preserve original aspect ratio
// Convert each sheet to a separate image file
for (int i = 1; i <= pageCount; i++) {
imgOptions.setPageNumber(i);
String outputPath = outputFolder + "/sheet_" + i + ".png";
conversion.convert(outputPath, imgOptions);
}
}
System.out.println("Excel to image conversion completed successfully.");
} catch (Exception ex) {
System.err.println("Conversion failed: " + ex.getMessage());
ex.printStackTrace();
}
}
}
注意: 此代码示例演示了核心功能。在将其用于项目之前,请确保更新文件路径(
input.xlsx、output_images)以匹配实际文件位置,验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。
结论
在 Java 中将 Excel 转换为图像变得简单,只需使用 Conholdate.Total for Java。该 SDK 能够处理图表渲染、公式计算,并以最少的代码生成高质量的 PNG 输出。按照分步指南,您可以将此功能集成到报表工具、邮件生成器或任何需要可视化电子表格表示的应用程序中。请记住,生产环境部署需要商业许可证;您可以在 Conholdate.Total 定价 页面查看定价选项,并在评估期间从 临时许可证页面 获取临时许可证。
FAQs
如何在 Java 中将 Excel 转换为图像?
使用来自 Conholdate.Total for Java 的Conversion类,配置ExcelLoadOptions和ImageConvertOptions,然后对每个工作表调用convert。我可以将 Excel 图表转换为图像吗?
是的。使用loadOptions.setLoadCharts(true)启用图表加载,并在设置imgOptions.setPageNumber时指定图表的页码。是否可以仅转换特定范围的单元格?
您可以在加载选项中定义范围,或在转换前选择对应所需范围的相应页码。生产使用需要什么许可证?
需要商业许可证。请在 Conholdate.Total 定价 页面查看费用,并从 临时许可证页面 获取临时许可证。
