引言
在实际开发中,将 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。不过,在使用过程中需要注意其存在的一些限制,如图片设置的导出不支持等。如果想深入了解更多详细信息,可以参考相关帮助文档 ^^。