Java 轻松实现 Excel 转 PDF (含代码示例)

485 阅读1分钟

在数据报告、财务报表等场景中,Excel转PDF的需求频繁出现。手动操作耗时且易出错,而依赖Office组件的方案又存在版本兼容性差、部署成本高等痛点。作为Java开发者,如何通过代码实现无依赖的高质量转换?文将详解用 Spire.XLS for Java 实现Excel XLS 或 XLSX 文件到 PDF 的精准转换。


一、3 行代码实现Excel转PDF

  1. Maven环境配置

    <repositories>
     <repository>
         <id>com.e-iceblue</id>
         <name>e-iceblue</name>
         <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
     </repository>
    </repositories>
    <dependencies>
     <dependency>
         <groupId>e-iceblue</groupId>
         <artifactId>spire.xls</artifactId>
         <version>15.7.7</version>
     </dependency>
    </dependencies>
    

2. 基础转换代码
Spire.XLS for Java的无依赖特性是其最大优势。通过以下代码即可完成基础转换:

import com.spire.xls.*;

public class ExcelToPdf {

    public static void main(String[] args) {

        // 加载 Excel(.xls/ .xlsx)
        Workbook workbook = new Workbook();
        workbook.loadFromFile("示例.xlsx");
        
        // 另存为PDF
        workbook.saveToFile("Excel转Pdf.pdf", FileFormat.PDF);
    }
}

优势:代码简洁,学习成本低,适合快速集成。

3. 自定义转换设置
在转换过程中,通过 Workbook.getConverterSetting() 方法返回一个 ConverterSetting 类可用于设置转换选项。

参数功能
setSheetFitToPage()调整工作表适配PDF页面
setPdfConformanceLevel()设置PDF符合性级别
setJPEGQuality设置JPEG图像的质量
setMaxConvertPages设置最大转换页数限制

二、进阶设置:指定区域导出、页面布局优化

1. 指定工作表或单元格区域导出

Workbook workbook = new Workbook();
workbook.loadFromFile("示例.xlsx");

// 获取指定工作表
Worksheet worksheet = workbook.getWorksheets().get(0);
// 或者指定区域
//sheet.getPageSetup().setPrintArea("B1:E6");

// 另存为 PDF
worksheet.saveToPdf("工作表转PDF.pdf");

2. 页面布局控制

Spire.XLS提供 PageSetup 类来控制输出PDF文档页面的设置:

PageSetup  options = sheet.getPageSetup();      
options.setOrientation(PageOrientationType.Landscape); // 设置方向
options.setPaperSize(PaperSizeType.PaperA4); // 设置页面尺寸
options.isPrintGridlines(true); // 显示网格线
// 设置页边距
options.setLeftMargin(0.5);
options.setRightMargin(0.5);
options.setTopMargin(0.5);
options.setBottomMargin(0.5);

spire.xls for java能快速实现 excel到pdf的转换,并提供丰富的自定义设置,解决了传统方案在处理复杂Excel文件时遇到的各种痛点。