Java 将Excel转为PDF

本文介绍如何使用FreeSpire.XLSforJava库在Java程序中将Excel文档转换为PDF格式,包括整个工作簿和特定工作表的转换过程。

本文将介绍在Java程序中如何将Excel工作簿转为PDF文档的,包括:

  • 将整个工作簿转为PDF
  • 将指定工作表转为PDF

使用工具:Free Spire.XLS for Java (免费版)

Jar文件下载及导入:

方法1通过官网下载。下载后,解压文件,将lib文件夹下的Spire.Xls.jar文件导入Java程序;如下图:

方法2通过maven仓库导入,具体步骤可参考导入方法


Excel测试文档如下,包含两个工作表:

 

【示例1】将整个工作簿转为PDF

import com.spire.xls.*;

public class ExcelToPDF {
    public static void main(String[] args) {
        //加载Excel文档
        Workbook wb = new Workbook();
        wb.loadFromFile("test.xlsx");

        //调用方法保存为PDF格式
        wb.saveToFile("ToPDF.pdf",FileFormat.PDF);
    }
}

转换结果:

 

【示例2】将指定工作表转为PDF

import com.spire.xls.*;

public class ExcelToPDF {
    public static void main(String[] args) {
        //加载Excel文档
        Workbook wb = new Workbook();
        wb.loadFromFile("test.xlsx");

        //获取第2个工作表
        Worksheet sheet = wb.getWorksheets().get(1);

        //调用方法保存为PDF格式
        sheet.saveToPdf("ToPDF2.pdf");
    }
}

转换结果:

 

(本文完)

 

### 使用JavaExcel文件换为PDFJava中,可以利用第三方库来完成将Excel文件换为PDF的任务。以下是几种常见的方法及其对应的代码示例。 #### 方法一:使用Apache POI与iText组合 Apache POI是一个用于处理Microsoft Office文档的强大工具[^1],而iText则专注于PDF生成。通过先读取Excel数据再将其写入到PDF中,可以实现这一功能。 ```java import com.itextpdf.text.Document; import com.itextpdf.text.PageSize; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream; import java.io.FileOutputStream; public class ExcelToPdfConverter { public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("input.xlsx"); Workbook workbook = new XSSFWorkbook(fis); Sheet sheet = workbook.getSheetAt(0); Document document = new Document(PageSize.A4.rotate()); PdfWriter.getInstance(document, new FileOutputStream("output.pdf")); document.open(); PdfPTable table = new PdfPTable(sheet.getRow(0).getPhysicalNumberOfCells()); for (Row row : sheet) { for (Cell cell : row) { switch (cell.getCellType()) { case STRING: table.addCell(cell.getStringCellValue()); break; case NUMERIC: if (DateUtil.isCellDateFormatted(cell)) { table.addCell(cell.getDateCellValue().toString()); } else { table.addCell(Double.toString(cell.getNumericCellValue())); } break; default: table.addCell(""); } } } document.add(table); document.close(); workbook.close(); fis.close(); } } ``` 此代码片段展示了如何加载一个`.xlsx`文件,并逐行读取其内容至PDF表单中。 --- #### 方法二:使用Spire.XLS for Java Spire.XLS是一款商业化的Java库,支持直接将Excel文件导出为PDF格式。它提供了更简洁的API接口。 ```java import com.spire.xls.*; public class SpireExcelToPdf { public static void main(String[] args) { // 加载Excel工作簿 Workbook workbook = new Workbook(); workbook.loadFromFile("input.xlsx"); // 将整个工作簿保存为PDF workbook.saveToFile("output.pdf", FileFormat.PDF); } } ``` 这种方法更加高效且易于维护,但由于它是付费产品,因此可能不适合所有项目需求。 --- #### 方法三:借助Aspose.Cells for Java 类似于Spire.XLS,Aspose.Cells也提供了一种简单的方式来执行相同的操作: ```java import com.aspose.cells.Workbook; public class AsposeExcelToPdf { public static void main(String[] args) throws Exception { // 创建Workbook对象并打开Excel文件 Workbook wb = new Workbook("input.xlsx"); // 换为PDF并保存 wb.save("output.pdf", com.aspose.cells.SaveFormat.PDF); } } ``` 尽管这些解决方案都依赖于专有软件,但在某些情况下它们可能是最佳选择。 --- ### 总结 上述三种方式均可满足将Excel文件PDF的需求。如果倾向于开源方案,则推荐采用 **Apache POI+iText** 的搭配;而对于追求便捷性的开发者来说,可以选择像 **Spire.XLS** 或者 **Aspose.Cells** 这样的商业化组件。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值