java excel转pdf
在 Java 中,将 Excel 转 PDF 有多种实现方式,以下是几种主流方案对比与推荐,按稳定性、易用性、保真度排序:
✅ 方案一:使用 Spire.XLS for Java(推荐)
特点:无需安装 Office,支持图表、样式、分页等高保真转换,3 行代码搞定。
✅ 示例代码(2025-08 实测有效)
java
复制
import com.spire.xls.*; public class ExcelToPDF { public static void main(String[] args) { Workbook workbook = new Workbook(); workbook.loadFromFile("input.xlsx"); workbook.saveToFile("output.pdf", FileFormat.PDF); } }✅ Maven 依赖
xml
复制
<repository> <id>com.e-iceblue</id> <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.xls</artifactId> <version>15.7.7</version> </dependency>✅ 进阶功能
- 指定工作表导出
- 设置纸张大小、边距、方向
- 控制分页、打印区域等
⚠️ 方案二:Apache POI + iText(开源但复杂)
特点:完全开源,但只支持纯表格内容,不支持图表、合并单元格、样式保真,需自己处理字体、边框、分页等。
⚠️ 示例代码(简化版)
java
复制
// 使用 Apache POI 读取 Excel // 使用 iText 创建 PDF 表格 // 需手动遍历行列、设置单元格内容缺点:开发量大,样式丢失严重,不适合正式报表。
⚠️ 方案三:Jacob(Windows 专用)
特点:调用 Windows COM 接口,依赖本地 Excel 安装,仅支持 Windows,部署复杂。
java
复制
// 使用 Jacob 调用 Excel 的 ExportAsFixedFormat 方法缺点:平台强绑定,服务器部署麻烦,不适合 Linux。
✅ 总结推荐表
表格
复制
| 方案 | 是否开源 | 是否保真 | 是否跨平台 | 推荐场景 |
|---|---|---|---|---|
| Spire.XLS | ❌ | ✅ | ✅ | 企业报表、正式文档 |
| POI + iText | ✅ | ❌ | ✅ | 简单表格、内部工具 |
| Jacob | ✅ | ✅ | ❌ | Windows 本地工具 |
✅ 最终建议
如果你要快速、稳定、保真地转换 Excel 为 PDF,Spire.XLS for Java 是当前最省心的选择,尤其适合企业级项目。
如需免费开源方案,我可以给你一份基于 POI + PDFBox 的完整模板代码,但需提前说明:不支持图表和复杂样式。
是否需要?