Java实现Excel转PDF

一、只适合三页内的PDF

使用几行代码就可以将我们的Excel转为PDF格式,

先说缺点:这个jar包是收费的,只能导出3页,不适合超过3页PDF文件的转换。

1、在pom文件中导入workbook的所需依赖:

|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 | <``dependency``> ``<``groupId``>e-iceblue</``groupId``> ``<``artifactId``>spire.xls.free</``artifactId``> ``<``version``>5.1.0</``version``> </``dependency``> |

如果不能自动导入,则手动导入

https://mvnrepository.com/artifact/e-iceblue/spire.xls.free/5.1.0

下载jar包到本地后

2.Win+R打开运行,输入cmd回车打开doc命令窗口

java 复制代码
mvn install:install-file -Dfile=D:\spire.xls.free-5.1.0.jar -DgroupId=e-iceblue -DartifactId=spire.xls.free -Dversion=5.1.0 -Dpackaging=jar

显示如下图就是成功了

3.使用workbook导出整个Excel文件的代码只需要两步,我们可以直接看代码示例:

|-------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | ``/** ``* 使用spire简单整个Excel转换为pdf ``* ``* @param inputFilePath Excel文件路径 ``* @param outputFilePath 导出的PDF文件路径 ``*/ ``public static void totalExcelToPDF(String inputFilePath, String outputFilePath) { ``Workbook wb = ``new Workbook(); // 引入Excel文件 ``wb.loadFromFile(inputFilePath); // 导出PDF文件 ``wb.saveToFile(outputFilePath, FileFormat.PDF); ``} |

本地文件快速测试:

java 复制代码
import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;

    @Test
    public void test() {
        // Excel文件路径
        String excelFilePath = "C:\\Users\\admin\\Downloads\\crossdock_plan_bol_2025-10-22 (1)\\test.xlsx";
        
        // 加载Excel文件
        Workbook workbook = new Workbook();
        workbook.loadFromFile(excelFilePath);
        
        // 构造PDF文件路径(与Excel文件同路径,仅文件扩展名不同)
        String pdfFilePath = excelFilePath.replaceAll("\\.xlsx$", ".pdf");

        // 保存为PDF到同路径下
        workbook.saveToFile(pdfFilePath, FileFormat.PDF);
        
        System.out.println("PDF文件已保存到: " + pdfFilePath);
    }

也指定单个的sheet页转为PDF,输入指定的sheet页的下标即可。代码示例如下:

|----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /** ``* 使用spire将单个sheet转成pdf ``* ``* @param inputFilePath Excel文件路径 ``* @param outputFilePath 导出的PDF文件路径 ``* @param sheetNum 导出的sheet页下标 ``*/ public static void partExcelToPDF(String inputFilePath, String outputFilePath, ``int sheetNum) { ``//加载Excel文档 ``Workbook wb = ``new Workbook(); ``wb.loadFromFile(inputFilePath); ``//获取到哪一个sheet页 ``Worksheet sheet = wb.getWorksheets().get(sheetNum); ``//调用方法保存为PDF格式 ``sheet.saveToPdf(outputFilePath); } |

补充:

这个好像也可以,都差不多

Downloads - Free Spire.PDF for Java

复制代码
<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.pdf.free</artifactId>
    <version>9.13.0</version>
</dependency>

二、多页的(破解版)

稍等待我整理更新。。。。。

相关推荐
wuminyu7 小时前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
callJJ9 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
wbs_scy10 小时前
Linux线程同步与互斥(三):线程同步深度解析之POSIX 信号量与环形队列生产者消费者模型,从原理到源码彻底吃透
java·开发语言
开开心心就好10 小时前
仅168KB的桌面图标自动隐藏工具
windows·计算机视觉·计算机外设·excel·启发式算法·宽度优先·csdn开发云
jinanwuhuaguo11 小时前
(第三十三篇)五月的文明奠基:OpenClaw 2026.5.2版本的文明级解读
android·java·开发语言·人工智能·github·拓扑学·openclaw
xmjd msup12 小时前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring
9523612 小时前
SpringBoot统一功能处理
java·spring boot·后端
Lyyaoo.12 小时前
优惠券秒杀业务分析
java·开发语言
消失的旧时光-194312 小时前
统一并发模型:线程、Reactor、协程本质是一件事(从线程到协程 · 第6篇·终章)
java·python·算法
勿忘初心122112 小时前
Java 国密 SM4 加密工具类实战(Hutool + BouncyCastle)|企业级数据加密 + 兼容 JDK8
java·数据安全·数据加密·后端开发·企业级开发·国密 sm4