当前位置: 首页 > java >正文

Java 实现 Excel 转化为 PDF

引言

在实际开发中,将 Excel 文件转化为 PDF 格式是一项常见需求。例如在需要共享数据报表时,PDF 格式具有更好的兼容性和安全性。GrapeCity Documents for Excel(GcExcel)为 Java 开发者提供了强大的工具,可轻松实现将 Excel 转化为 PDF 的功能。本文将详细介绍如何使用 GcExcel 在 Java 中完成这一转化过程。

正文

基本导出功能

GcExcel 提供了将工作簿导出为 PDF 文件的工具。可以为工作簿中的每个工作表设置分页,并将其导出到 PDF 文件中指定的页面。在执行导出操作时,还能应用样式、自定义字体、添加安全选项、配置文档属性以及调整行高或列宽。此外,带有图表、切片器和背景图片的 Excel 工作表也能成功导出为 PDF 文档。

GcExcel 允许使用 IWorkbook 接口的 save() 方法将工作簿中所有可见的电子表格保存到 PDF 中,工作簿中的每个工作表都会保存到 PDF 文件中的新页面。若只想将当前工作表(活动工作表)导出为 PDF 格式,则可使用 IWorksheet 接口的 save() 方法。

在处理图片方面,GcExcel 也非常高效。如果一张图片在电子表格中被多次使用,GcExcel 只会保留一份图片副本,以减小导出的 PDF 文件的大小。

以下是将电子表格导出为 PDF 文件的示例代码:

// Create a new workbook and add worksheets
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
IWorksheet worksheet1 = workbook.getWorksheets().add();// Set value and apply styles to the worksheet
worksheet1.getRange("A1").setValue("Sheet1");
worksheet1.getRange("A1").getFont().setName("Wide Latin");
worksheet1.getRange("A1").getFont().setColor(Color.GetRed());
worksheet1.getRange("A1").getInterior().setColor(Color.GetGreen());// Export Workbook to pdf file, the exported file has two pages.
workbook.save("ConvertWorkbookToPDF.pdf", SaveFileFormat.Pdf);// Just export a particular worksheet to pdf file
worksheet1.save("ConvertWorksheetToPDF.pdf", SaveFileFormat.Pdf);

定制导出选项

GcExcel 提供了 PdfSaveOptions 类来定制 PDF 文件的导出,这些选项如下:

选项描述
导出选项PdfSaveOptions存储导出 PDF 时的各种选项
BorderOptions导出 PDF 时存储边框选项
DocumentProperties表示 PDF 的文档属性
FileFormat表示工作簿的保存格式
FormFields指示是否用 PDF 表单域替换 Excel 表单控件,并非所有控件和属性都受支持
ImageQuality以百分比设置图像质量,此值必须介于 0(最低质量,最大压缩)和 100(最高质量,无压缩)之间,默认值为 75
OpenActionScript设置打开保存的 PDF 文件时要执行的 JavaScript
PrintBackgroundPicture指示是否在页面上打印工作表的背景图像
PrintTransparentCell指示是否在页面上打印单元格背景色的透明度
SecurityOptions表示 PDF 的安全设置
ShrinkToFitSettings关于对自动换行文本执行缩小以适应的设置
ViewerPreferences包含指定当前文档应如何显示的信息的设置
IncludeAutoMergedCells指示是否包含自动合并的单元格,默认值为 false

在 PDF 文档中设置 JavaScript

GcExcel 还支持通过 PdfSaveOptions 类的 setOpenActionScript 方法在 PDF 文档中设置 JavaScript。打开保存的 PDF 文档时,会执行 JavaScript。以下是示例代码:

Workbook workbook = new Workbook();
workbook.open("D:\\SampleTemplate.xlsx");
workbook.processTemplate();
PdfSaveOptions options = new PdfSaveOptions();
options.setOpenActionScript("var fld1 = this.getField(\"num\");" +"fld1.value = fld1.value;" +"this.dirty = false;");
workbook.save("SampleTemplate_java.pdf", options);

自定义导出 PDF 的其他设置

在执行导出操作时,可以配置字体、设置样式和指定页面设置选项,来自定义导出 PDF。有关详细信息,请参阅以下主题:

  • 设置字体样式
  • 导出数据透视表样式和格式
  • 导出形状
  • 导出边框
  • 导出条件格式
  • 导出填充样式
  • 导出图片
  • Export图表
  • 导出迷你图
  • 导出表格
  • 导出文本
  • 导出垂直文本
  • 设置文本自动收缩与自动换行
  • 导出切片器
  • 设置安全选项
  • 设置文档属性
  • 调整行高和列宽
  • 设置背景图片
  • 分页控制
  • 设置背景色透明度
  • 跟踪导出进度
  • 自定义边框样式

需要注意的是,GcExcel 不支持将图片设置(如线条格式、填充格式、亮度、对比度和水印颜色类型)导出到 PDF 文档中。并且与微软 Excel 相比,GcExcel 中 PatternType 枚举的 DiagonalCross 结果有所不同。

结论

通过 GcExcel 提供的功能和方法,Java 开发者能够方便地实现将 Excel 转化为 PDF 的需求。不仅可以进行基本的导出操作,还能通过 PdfSaveOptions 类对导出的 PDF 文件进行定制,包括设置文档属性、安全选项、图像质量等。同时,还支持在 PDF 文档中设置 JavaScript。不过,在使用过程中需要注意其存在的一些限制,如图片设置的导出不支持等。如果想深入了解更多详细信息,可以参考相关帮助文档 ^^。

http://www.xdnf.cn/news/13909.html

相关文章:

  • OceanBase (DBA)一面面经
  • DMC-E 系列总线控制卡----雷赛板卡介绍(六)
  • 使用 ollama 在 mac 本地部署一个 qwen3:8b 模型
  • 26考研 | 王道 | 计算机组成原理 | 六、总线
  • 传统企业数字化转型:以定制开发开源 AI 智能名片 S2B2C 商城小程序源码为核心的销售环节突破
  • Python爬虫实战:研究gearman相关技术
  • 计算机视觉与深度学习 | 低照度图像增强算法综述(开源链接,原理,公式,代码)
  • Spring Boot常用依赖大全:从入门到精通
  • Ecc option开启后报错解决(植入实际程序后)
  • 【递归、搜索与回溯】FloodFill算法(二)
  • 泰国零售巨头 CJ Express 借助 SAP 内存数据库实现高效数据管理
  • 从SQL Server到分布式大数据平台:重构企业数据架构
  • navicat可视化页面直接修改数据库密码——mysql、postgresql、mangodb等
  • 什么是云原生?什么样的框架符合云原生?
  • 嵌入式PADS原理图与元件符号绘制实现
  • unity学习摘要
  • Java的Arrays.sort():排序算法与优化分析
  • python+django/flask厨房达人美食分享系统
  • 电流环执行周期与电流环带宽区别
  • 精粹汇总:大厂编程规范(持续更新)
  • Tensorflow安装出现dependency conflict错误
  • 如何在 Visual Studio Code 中配置SSH、Git 和 Copilot插件
  • NineData 社区版 V4.2.0 发布!新增MySQL与PostgreSQL互相迁移,SQL管理Milvus,安装更高效
  • .NET Core 数据库连接字符串加密与解密
  • PHP设计模式实战:领域驱动设计与六边形架构
  • 深度分页优化
  • MySQL-DDL语句深度解析与实战指南
  • mac安装mvnd结合idea
  • C++中的零拷贝技术
  • 【QT系统相关】QT文件