EasyExcel 初使用—— Java 实现多种写入 Excel 功能
前言
大家好,我是汉堡。最近实习接触到了导出数据的功能,在实现此功能之前我们要先了解如何往 Excel 中写入数据。相信学完这个,再去做导出数据功能也不会太难,等大家学完这个我再教大家前后端如何实现导出 Excel。
EasyExcel 官方网址:EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel
前置准备
引入依赖
先创建一个 Spring Boot 工程,随后加入 EasyExcel 和 Lombok 依赖。
设置一个写对象,即写入 Excel 的对象
写入 Excel
最简单的写入 Excel 方式
看代码也能看出来,首先有一个写入 Excel 的对象 List,其次指定 Excel 表格的位置和表单名称,最后进行调用 write 方法将 list 写入 Excel 即可。
写入效果:

如果 EasyExcel.write() 方法不带上 SaleData.class,就表示未指定表头,那这样写入 Excel 时是直接写入的,但没有表头。
没指明表头的写入效果:

根据参数写入指定列
与上一种方法类似,无非多了两个 Set,一个需要写入的 Set,另一个不需要写入的 Set。
在此段代码中,我指定了 id 不需要写入 Excel,userId 需要写入 Excel。最终可以看出,只有 userId 被写入 Excel 中。

写入指定的列
可以利用 ExcelProperty 注解的 index 属性,指定某些字段写到 Excel 的某一列。
代码很简单我就不多解释了,相较于最简单的写入 Excel 方式,唯一不同的就是加了写入对象的 index 属性。
可以看出来,第一列被没有被写入,因为我的 index 是从 1 开始的,表格的第一列 index(索引) 为 0。最终效果如下:

复杂的头写入
这个复杂头写入不太好解释,所以大家直接看代码和写入效果就懂了。
运行效果:

重复多次写入
前几种写入方式都只能在数据量不大的情况下才可使用,这个数量是指在 5000 一下,超过这个量级我们就得换种方式了,在此我就介绍一下官方演示的重复多次写入 Excel 方式。
老实说看代码并不复杂,也就是加了个 for 循环罢了,对于重复多次写入,我们不仅可以写入不同的表单(Sheet)还能写入不同的对象,甚至写入不同的数据(即写入不同的 list)。
利用这个方式我们可以在循环中调整不同的分页参数,然后分页查询数据库并把查到的数据写入 Excel 中,是不是很巧妙啊,要是一次性写入的话内存会溢出的。
可能有人会问怎么写入不同的表单(Sheet)和对象,我这里提供个思路,你可以创建一个表单或者对象集合,可以是 List 也可以是 Map,然后根据循环的 i 去获取对应的元素嘛。
写入效果如下,我们可以看到共有 5 个表单,因为我们循环写入了 5 个不同的表单,并且每个表单数据都是一样的。

Java 读取 Excel
想要了解 Java 如何实现读取 Excel 的小伙伴可以看看这篇文章哈——https://articles.zsxq.com/id_k751dhh0utwv.html
如果你觉得还不错的话就给我点个赞吧。
