Spring整合Excel与Pdf
一、Excel整合操作
1、POI与EasyExcel介绍
Apache POI官网: https://poi.apache.org/
Apache POI 简介是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office(Excel、WORD、PowerPoint、Visio等)格式档案读和写的功能。
基本功能(原生)
- HSSF – 提供读写Microsoft Excel各式档案的功能。(03版本)
- XSSF – 提供读写Microsoft Excel OOXML各式档案的功能。(07版本)
- HWPF – 提供读写Microsoft Word各式档案的功能。
- HSLF – 提供读写Microsof PowerPoint格式档案的功能。
- HDGF – 提供读写Microsoft Visio格式档案的功能。
Easy Excel官方文档:https://www.yuque.com/easyexcel/doc/easyexcel
Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到几M,并且再大的excel不会出现内存溢出,03版依赖POI的sax模式。在上层做了模型转换的封装,让使用者更加简单方便
2、POI-Excel操作
导入maven依赖
1 | <!--xls(03)--> |
==注:== 03版本和07版本存在兼容性问题,03版本最多支持65535行
POI-Excel写
1 |
|
POI-Excel读
其中表格会员消费商品明细表.xls
内容如下
卡号 | 持卡人 | 手机号 | 消费日期 | 小票号 | 商品编号 |
---|---|---|---|---|---|
100088 | shawn | 12333333333 | 2021/2/22 | 0000201510200146 | PV700012 |
100089 | shawn22 | 12333333333 | 2021/2/22 | 0000201510200146 | PV700006 |
1 |
|
3、EasyExcel操作
Easy Excel官方文档:https://easyexcel.opensource.alibaba.com/
导入maven依赖,注意里面已经存在poi
和poi-ooxml
依赖,需要注释刚才我们自己加上去的
1 | <dependency> |
读写都在文档中已详细写明
二、Pdf整合操作
1、模板导入
我们先使用WPS以Word的形式进行编辑制作出与客户需求一样的样式,然后直接另存为 xxx.pdf,然后用Adobe Acrobat DC打开我们刚才改过名字的PDF文件,点击右下角的“更多工具”按钮,点击“准备表单”按钮,接下来就需要详细的配置你的数据源了(数据源即:你代码中实体类中对应的数据(注意字段一定要一一对应),配置完毕就可以保存进行下面的代码编写工作了)
首先引入依赖
1 | <dependency> |
编写相应生成代码
1 | public class GeneratePDFUtil { |
2、Html模板生成
引入依赖
1 | <dependency> |
随后创建好对应的Java类
1 | public abstract class AbstractTemplate { |
配置模板文件,注意文件位置在resources/html2pdfTemplate/
下
1 |
|
运行测试类,如果报错可以在启动类加上@SpringBootApplication(exclude = ThymeleafAutoConfiguration.class)
1 |
|
三、文件的下载
Excel和Pdf的导出可以参考:https://mp.weixin.qq.com/s/ZMeDTClljXy-t-ZrvElH2A
下面是比较通用的Servlet文件下载
1 | "/download") ( |