为什么说EasyExcel可以让你告别easypoi呢?在说这个问题之前我们先来了解下easypoi
easypoi
easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法
这是easypoi官方给出的定义,使用这个工具后发现在进行excel的导入导出时,的确很方便。特别是一些简单的excel
比如这种简单的excel,easypoi的确是不二选择,只需要引入mavn依赖,添加一个pojo,加一个注解,然后就可以导出。
但是在遇到一些比较复杂的excel,比如下面这种:
类似与这种比较复杂的表头,一个sheet多张表,多个sheet,合并单元格各种复杂的情况下,easypoi处理起来就比较复杂了,反观easyExcel就比较拿手。
easyExcel处理简单的excel和easypoi一样简单,处理复杂的excel也完全可以通过注解的方式一步到位。开发者只需要编写很少的style代码就能直接达到自己想要的效果,下面就让我们一起来看看easyExcel的强大之处
引入maven依赖
1 | xml复制代码<dependency> |
新建实体
1 | less复制代码 |
@ExcelProperty 注解的value是个数组,按照index从上到下,相同的值头部会进行合并。这种合并头部的方式相比easypoi的实体嵌套显得直观多了,更加方便。我们对页面列表的数据查询后,也不用进行数组对象嵌套组装,省了很多的工作量,如果希望头部的标题是动态的也可以设置成#{title}的方式(当然这是我自己封装的)
导出工具
下面我封装的easyExcel导出工具,使用的话可以直接复制,并自己做些适当的调整
1 | ini复制代码 |
表格合并配置
1 | ini复制代码 |
表格的高度默认设置
1 | java复制代码 |
1 | less复制代码@Data |
多sheet导出对象参数
1 | swift复制代码 |
多表多sheet导出对象参数
1 | swift复制代码 |
下面的是最简单的导出
1 | scss复制代码ComplexSubjectEasyExcel excel = new ComplexSubjectEasyExcel() |
多sheet导出
1 | scss复制代码public void moreSheetTest(){ |
多sheet,多表的导出
1 | scss复制代码public void moreSheetMoreTableTest(){ |
到此为止! 使用之后你就会发现easyExcel的便捷和强大
本文转载自: 掘金