引言
在實際開發中,將 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。不過,在使用過程中需要注意其存在的一些限制,如圖片設置的導出不支持等。如果想深入了解更多詳細信息,可以參考相關幫助文檔 ^^。