上次写了一篇文章来讲解poi的:
Java操作Excel(Apache Poi详解)
当时觉得还是POI很好用的,但是最近用了easyexcel
的时候,一下就被他吸引了,虽然他只能操作excel,但是还是要比poi好用太多,首先poi在处理文件的时候会消耗大量的内存,而easyexcel
对他进行了大量的优化,是的运行的时候消耗非常小的内存,如果大家同样是操作excel还是推荐大家使用easyexcel
。
下面带大家来入门easyexcel
吧。这次实现的功能有四个:文件的读写,导入和导出。
首先我们准备一张表
我们教程用到的表
我已经放到我的个人仓库里,欢迎大家自取
https://gitee.com/WangFuGui-Ma/easy-excel-quickstart
第一步,我们创建一个springboot工程
第二步,导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- EasyExcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.6</version>
</dependency>
<!-- lombok 优雅编程 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
第三步,编写我们的实体类
实体类对应的就是excel里面的一一对应关系
第四步,编写我们的监听器
这个监听器的作用就是在我们读数据的时候会执行里面的invoke
方法,全部读完之后,会调用doAfterAllAnalysed
方法
第五步,读
我们来读我们的文件并且将里面的内容用json格式返回到前端
第六步,写
如果导出文件名乱码,可更改为
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName,"utf-8") + ".xlsx");
第七步,导出
第八步,导入