2023-10-31
温故知新
00
请注意,本文编写于 387 天前,最后修改于 319 天前,其中某些信息可能已经过时。

目录

简介
模板
代码
吐槽

简介

记一次使用EasyExcel模板导出文件的操作。

模板

之所以使用模板导出,是因为导出的文件内容格式较为复杂。虽然看起来只是简单的数据列表,但表头较复杂,其中有多级表头,且部分表头级别各部相同,所以为了更简单方便的实现该导出功能,选择使用模板导出的方式。

表头部分示例如下:

table

数据层面只是简单的列表,一列即时一个数据字段,所以采用简单的 List 数据即可,模板写法如下:

template

其中第6行即时实体字段映射,以 {.a} 为例,固定写法 {.} 表示从 List 数据中遍历读取数据,数据的Key是 a

代码

本次使用的maven依赖版本如下:

xml
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1</version> </dependency>

有了模板文件之后,只需要使用代码读取到该模板和数据,调用EasyExcel的工具方法即可,方法封装如下:

java
/** * @param inputStream-模板文件的输入流 * @param outputStream-输出文件的输出流 * @param data-数据集合 */ public static <T> void writeExcel(InputStream inputStream, OutputStream , List<T> data) { EasyExcel.write(outputStream) .excelType(ExcelTypeEnum.XLSX) .withTemplate(inputStream) .sheet() .doFill(data); }

吐槽

doFill(data)方法是将数据填入模板文件的方法,doWrite(data)是将数据写入文件的方法,所以注意壁坑,选择使用!

PS:EasyExcel官方的文档真垃圾!

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:DingDangDog

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!