工作中遇到excel文件转pdf的需求,总结了一下通过java的实现方法:

一、准备工作:

1.下载aspose-cells的jar包

由于Aspose是不能通过maven远程坐标引入的,因为在阿里云镜像里面没有这个包,把依赖下载到本地,放在项目里面,然后通过本地坐标引用。下载传送门

将下载完成的文件解压后放入项目中:

在项目的resource下创建lib目录,把jar放进去,然后创建license.xml(和jar包无关,在进行文件格式转换会用到)

打开 license.xml 文件,输入以下内容保存:

<License><Data><Products><Product>Aspose.Total for Java</Product><Product>Aspose.Words for Java</Product></Products><EditionType>Enterprise</EditionType><SubscriptionExpiry>20991231</SubscriptionExpiry><LicenseExpiry>20991231</LicenseExpiry><SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber></Data><Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
</License>

2.pom文件中写入maven坐标

<dependency>
            <groupId>com.aspose.cells</groupId>
            <artifactId>aspose-cells</artifactId>
            <version>cell-8.5.2</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/aspose-cells-8.5.2.jar</systemPath>
        </dependency>

二、编写逻辑

1.获取license.xml 文件,去除水印

    /*** 获取license 去除水印** @return*/public static boolean getLicense() {boolean result = false;try {InputStream is = TestForExcel2PDF.class.getClassLoader().getResourceAsStream("\\license.xml");License aposeLic = new License();aposeLic.setLicense(is);result = true;} catch (Exception e) {e.printStackTrace();}return result;}

2.文件转pdf输出

    /*** excel 转为pdf 输出。** @param sourceFilePath excel文件* @param desFilePathd   pad 输出文件目录*/public static void excel2pdf(String sourceFilePath, String desFilePathd, int showSheets) {if (!getLicense()) { // 验证License 若不验证则转化出的pdf文档会有水印产生return;}try {Workbook wb = new Workbook(sourceFilePath);// 原始excel路径FileOutputStream fileOS = new FileOutputStream(desFilePathd);PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();pdfSaveOptions.setOnePagePerSheet(true);//设置合规性类型pdfSaveOptions.setMergeAreas(true);//int[] autoDrawSheets = {3};//当excel中对应的sheet页宽度太大时,在PDF中会拆断并分页。此处等比缩放。//autoDraw(wb,autoDrawSheets);//隐藏workbook中不需要的sheet页。printSheetPage(wb, showSheets);wb.save(fileOS, pdfSaveOptions);fileOS.flush();fileOS.close();System.out.println("完毕");} catch (Exception e) {e.printStackTrace();}}

3.设置需要生成pdf的sheet页

     /*** 选择输出的的sheet页。** @param wb* @param page 显示页的sheet数组*/public static void printSheetPage(Workbook wb, int page) {for (int i = 1; i < wb.getWorksheets().getCount(); i++) {wb.getWorksheets().get(i).setVisible(false);}if (page == 0) {wb.getWorksheets().get(0).setVisible(true);} else {for (int i = 0; i <= page; i++) {wb.getWorksheets().get(i).setVisible(true);System.out.println("第"+i+"页");}}}
}

写完收工!觉得有帮助的收藏,以后找不到了,点点关注,respect~~

Java操作excel转pdf工具类相关推荐

  1. java操作Excel、PDF文件

    java操作Excel.PDF文件 下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是贴出了关于操作EXCEL的代码: jxl是一个*国人写的java操作excel的工具, 在开源世界中, ...

  2. Word或Excel 转Pdf 工具类(License 去水印)

    Word或Excel 转Pdf 帮助类 需要引入jar包: aspose-words-15.8.0-jdk16.jar aspose-cells-8.5.2.jar 工具类 import com.as ...

  3. java给excel填充数据_使用poi操作Excel的处理工具类自动解析填充数据

    直接传入对应的对象直接生成Excel中的数据集合 Excel模板-表头所在行为1(所在行从一开始) image.png 首先需要导入的Excel表头行中要添加批注,内容为对应JavaBean的属性值. ...

  4. java开发excel导入导出工具类基于EasyExcel

    一.工具类 import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.style.column.LongestMatchCo ...

  5. Java 将 Excel 转换为 PDF 文件

    持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情 今天这是篇粗糙的文章,文字也较少,整理了个Java将Excel 转换为 PDF 文件的工具类.(还比较 ...

  6. excel转图片工具类

    添加依赖 <repository><id>AsposeJavaAPI</id><name>Aspose Java API</name>< ...

  7. Java操作百万数据量Excel导入导出工具类(程序代码教程)

    Java操作百万数据量Excel导入导出工具类(程序代码教程): # 功能实现1.自定义导入数据格式,支持配置时间.小数点类型(支持单/多sheet)(2种方式:本地文件路径导入(只支持xls.xls ...

  8. Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表...

    在上一篇博客中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅仅简单的读取office中的数据.尤其是在生 ...

  9. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

最新文章

  1. eclipse启动时报错An internal error occurred during: Initializing Java Tooling.
  2. oracle设置大表空间,Oracle怎样设置表空间数据文件大小
  3. tensorflow兼容问题
  4. Centos7把一个文件复制到另外一台服务器上的scp命令
  5. HDU - 1024 Max Sum Plus Plus 最大m段子段和+滚动数组优化
  6. 工作107:vue调用视频接口
  7. 百度与华为全面战略合作 人工智能手机真的要来了
  8. 计算并输出1000以内的所有“完数”之和
  9. 华为鸿蒙理性,华为的理性,鸿蒙的节奏
  10. “神兽”出笼谁来管?多地试水暑期托管班
  11. 高中英语计算机辅助教学例子,计算机辅助教学在英语听力中的运用
  12. F - Wormholes(判断是否存在负环)
  13. java中的定时任务
  14. android gridview 选择,Android GridView选择样式
  15. 华为c8818刷原生Android 6,华为C8818刷机教程_华为C8818强刷官方rom系统包
  16. php程序员工具箱 v,php工具箱下载_php工具箱 v1.0官方版_魅蓝下载
  17. python 断言方法_Python3断言
  18. MongoDB 文档操作之插入、查询
  19. OSX 黑苹果 ps 2 键盘 驱动
  20. w ndows 10关机快捷键,win10怎么关机 win10关机快捷键大全【图文演示】

热门文章

  1. AI深度学习入门与实战15 TensorBoard:实验统计分析助手
  2. 磁力搜索第二版-dhtcrawler2
  3. Python将农历日期转换为公历日期
  4. CSDN如何修改用户名
  5. python+selenium模拟点赞微博特定评论以及阅读特定话题
  6. CDO高效处理气象数据
  7. 如何编制大智慧指标(易学易懂)
  8. 正确的耳机线整理姿势
  9. [QQ机器人]Nonebot2 今日运势插件
  10. WIN10 tensorflow1.12安装 CPU