hello,你好呀,我是灰小猿,一个超会写bug的程序猿!

使用具将Excel转为PDF的方法有很多,在这里我给大家介绍两种常用的方法,分别应对两种不一样的使用场景,接下来我在springboot环境下给大家做一下演示!

一、使用spire转化PDF

首先介绍一种比较简单的方法,这种方法可以使用短短的几行代码就可以将我们的Excel文件中的某一个sheet页或者整个Excel文件转为PDF格式,

但是这种方法有一个缺点就是这个jar包是收费的,只能导出3个sheet页,不适合有多个sheet页的Excel文件的转换。

使用时首先在pom文件中导入workbook的所需依赖:

         <dependency><groupId>e-iceblue</groupId><artifactId>spire.xls.free</artifactId><version>2.2.0</version></dependency>

1、使用spire将整个Excel文件转为PDF

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

     /*** 使用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);}

2、指定单个的sheet页转为PDF

使用spire可以将指定单个sheet页面转为PDF格式输出,在这里需要输入指定的sheet页的下标。代码示例如下:

     /*** 使用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);}

以上使用spire来实现Excel转换PDF的方法虽然简单,但是不适合于较大的Excel文件转化,只适合有小于3个sheet页的文件使用。

所以在企业项目开发中,如果想要将大批量的Excel文件或sheet页较多的Excel文件整体转化为PDF格式的话,还是推荐使用下面这种方法,而且这种方法使用稳定还免费!

二、使用jacob实现Excel转PDF(推荐使用)

1、环境准备

在使用jacob之前需要做一些准备,首先需要去下载jacob的压缩包jacob.zip ,下载地址:https://sourceforge.net/projects/jacob-project/

解压之后,得到如下内容:

如果你是64位系统就用 x64的dll,32位系统就用x86的dll。之后我们需要将dll文件放入放入你的jdk的bin目录下,如下图所示:

这样前期准备工作就做好了,

接下来在在Maven中引入Jacob所需依赖:

         <!--jacob依赖--><dependency><groupId>com.jacob</groupId><artifactId>jacob</artifactId><version>1.19</version><scope>system</scope><!--本地的jacob.jar的路径--><systemPath>D:\DevInstall\jacob18,19\jacob-1.19\jacob.jar</systemPath></dependency>

注意:上面依赖中标签的值就是你的jacob.jar的具体路径,这个改成自己刚才下载的对应的路径就行了。

2、执行导出PDF

执行Excel导出PDF的方法如下:其中比较重要的地方进行了注释,方法可以直接拿来用即可!

 ​/*** 使用jacob实现excel转PDF** @param inputFilePath 导入Excel文件路径* @param outputFilePath 导出PDF文件路径*/public static void jacobExcelToPDF(String inputFilePath, String outputFilePath) {ActiveXComponent ax = null;Dispatch excel = null;​try {ComThread.InitSTA();ax = new ActiveXComponent("Excel.Application");ax.setProperty("Visible", new Variant(false));//禁用宏ax.setProperty("AutomationSecurity", new Variant(3));​Dispatch excels = ax.getProperty("Workbooks").toDispatch();​Object[] obj = {inputFilePath,new Variant(false),new Variant(false)};​excel = Dispatch.invoke(excels, "Open", Dispatch.Method, obj, new int[9]).toDispatch();​//转换格式Object[] obj2 = {//PDF格式等于0new Variant(0),outputFilePath,//0=标准(生成的PDF图片不会模糊),1=最小的文件new Variant(0)};​Dispatch.invoke(excel, "ExportAsFixedFormat", Dispatch.Method, obj2, new int[1]);​} catch (Exception e) {e.printStackTrace();throw e;} finally {if (excel != null) {Dispatch.call(excel, "Close", new Variant(false));}if (ax != null) {ax.invoke("Quit", new Variant[]{});ax = null;}ComThread.Release();}​​}

以上就是在Java中将Excel导出为PDF最常用的两种方法了,推荐使用第二种!

我是灰小猿,我们下期见!

Java实现Excel转PDF的两种方法总结相关推荐

  1. Java中的string定义的两种方法和区别

    java中的String定义的两种方法和区别 第一种:new方式 String s1 = new String("hello world"); String s2 = new St ...

  2. Java生成二维码的两种方法

    本文介绍Java生成二维码的两种方法,这两种方法都依赖于google提供的二维码依赖包. 一种是自己写工具类,代码可以网上抄. 另一种是使用hutool第三方工具类的依赖包,不用自己抄代码. 一.自定 ...

  3. java word转pdf,docx4j转pdf,docx4j导出pdf乱码,docx4j导出pdf丢失插画和图片,aspose将word转pdf 一共两种方法

    前言:一共有docx4j转pdf,aspose转pdf两种方式,不需要设置模板!!! java转pdf目前本人使用有两种方法,下面是方法代码 ps:因为本人是云桌面开发,所以只作截图,具体代码需要自己 ...

  4. 如何做电脑桌面应用_CAD批量转PDF?一分钟教会你CAD如何转PDF,两种方法任你选择!...

    作为从事CAD设计的我,已经深深的了解到了CAD设计行业的辛苦.dwg格式的文件作为CAD文件格式常见的专业格式,它能够很好的帮助我们保存好绘制好的CAD图纸.现在几乎在很多领域都可以见到,有的时候会 ...

  5. Java 跨平台获取 MAC 地址的两种方法

    前言 有时我们因为软件授权或者其它需要获取主机唯一标识而需要获取用户主机的MAC地址,而本文则将介绍如何通过Java来实现跨平台获取MAC地址的两种方法,同时具体的代码也已上传到GitHub. 如果不 ...

  6. java对文件进行压缩的两种方法

    在工作中,我们或多或少都会接触到文件的压缩和解压,在window系统中,我们只需下载一个能对文件进行解压缩的应用即可,但如果让我们自己动手写对文件压缩的代码,顿时就头大了. 在java中,我们都知道输 ...

  7. 取消Excel打开密码的两种方法

    Excel设置了打开密码,想要取消打开密码是由两种方法的,今天分享这两种方法给大家. 方法一: 是大家常见的取消方法,打开excel文件之后,然后点击文件 – 保护工作簿,点击[用密码进行加密] 删除 ...

  8. Java实现条件性参加会议问题(两种方法)

    有人邀请A,B,C,D,E,F 6个人参加一项会议,这6个人有些奇怪,因为他们有很多要求,已知: 1)A,B两人至少有1人参加会议:   2)A,E,F 3人中有2人参加会议:   3)B和C两人一致 ...

  9. 如何批量在excel中将中文转换为汉语拼音(Excel文字转拼音两种方法)

    今天工作遇到一个需求,其中有一列的需求是将姓名转变为拼音全称 这个需求有两种解决办法(目前) 直接进入正题: 1.第一种方法,利用自定义函数 要将以上的名字汉语拼音写出来,(举个例子,实际数据比这要多 ...

  10. 设置和取消Excel限制保护的两种方法

    Excel是我们工作中经常用到的办公软件,重要的文件往往还需要设置保护限制.设置和去除的方法有两种,下面就来说说看. 方法一: 1.打开Excel表格,点击上方工具栏的[审阅],再选择[保护工作表]或 ...

最新文章

  1. Python实战案例,pyecharts模块,Python实现5G数据
  2. 转:ECharts图表组件之简单关系图:如何轻松实现另类站点地图且扩展节点属性实现点击节点页面跳转...
  3. # HDU - 6185 Covering
  4. 集成JavaFX和Swing(修订版)
  5. linux 设备驱动总结,linux设备驱动归纳总结(三):3面向对象思想和lseek
  6. python 对字典分别按照key值、value值进行排序
  7. GIT常用快捷键配置
  8. oracle的sid
  9. 对比了 18000 个 Python 项目,这 TOP45 值得学习!
  10. 一点创业想法:读书类垂直博客
  11. Delphi之TClientSocket和TServerSocket使用tcp keepalive心跳机制实现“断网”、断电检测...
  12. 《暗黑3》是如何设计随机地下城的?
  13. 开关电源设计从入门到精通(附教程)
  14. 诺基亚Ovi商店开卖《水果忍者》
  15. WIN7英文语言包下载,安装,使用
  16. 阅读笔记——基于CART决策树的计算机网络课程学生成绩分析
  17. 51单片机之逻辑运算指令ANL、ORL、XRL等
  18. [NOI题库]1.3编程基础之算术表达式与顺序执行 题解(一)
  19. 计算机专业综述参考文献,2019年计算机专业文献综述格式及要求.doc
  20. Laravel教程 八:queryScope 和 setAttribute

热门文章

  1. 《道德经》全文和译文
  2. ios android 录音格式,Audio模块录音格式汇总(aac、mp3)
  3. overleaf表格_latex插入表格心得
  4. 手足之爱,平生一人:他们是中国历史上感情最好的一对兄弟 (苏轼苏辙,邓林武邓林飞)
  5. DM6437 OSD调试记录
  6. 计算机学院手绘,PS电脑手绘效果绘画教程
  7. pandas 两个DataFrame带条件匹配
  8. android开发点击版本号多次无法进入开发者模式模式
  9. python3中英文混合字符串的分离
  10. Ant、 Maven 、 Gradle—Java构建工具比较