EasyExcel的导出与导入
对比POI,EasyExcel使用起来更加的方便,性能也很优秀,趁着这次的需求,在项目中也是第一次使用EasyExcel,就整理一下我的使用内容。
我们一步一步的来介绍一下EasyExcel:
特点:
1.在数据模型层面进行了封装,对比POI来说使用更加简单。
2.重写了07版本的Excel的解析代码,降低内存消耗,有效避免OOM(内存溢出)。
3.只能用来操作Excel(POI能操作word,Excel,PPT)。
4.不能读取图片。
我的编码环境是SpringBoot框架下的。
要使用EasyExcel时,首先我们要在项目的POM文件中导入EasyExcel的依赖。我是用的时2.1.2版本
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.2</version>
</dependency>
导入依赖以后我们就可以开始写代码了。
导出功能:
我用了一天的时间使用了几种我见过的Excel导出方式,其中还有一点不通顺,因为掌握的不太好,都粘贴出来,供大家参考吧。
方式一:
这种导出方式当我导出后,表头文字设定以后没有显示,暂时还不知道是什么问题,使用时请谨慎
方式二:
这种导出方法是EasyExcel的方式进行导出的
方式三:
由上面的方法我们可以将其整理成一行代码进行导出。
导出用代码:
try(ServletOutputStream outStream = response.getOutputStream()) {
String fileName = "文件名";
fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
EasyExcel.write(outStream, 导出用的实体类模板.class).sheet("sheet页名").doWrite(列表集合);
}catch (Exception e) {
log.error(e.getMessage(), e);
}
使用这种方法我们就可以使用EasyExcel进行导出工作了。
导入功能:
EasyExcel的导入功能也十分简单。首先我们要创建一个PostMapping的Controller接口。在SpringMVC中封装了一个上传文件的类,所以我们只需要将这个对象作为参数传入就可以了。
导入方式一:
除此以外,我们还要另外建立一个监听器文件,就相当于Spring的面向切面编程,当每一行读取完毕,都会执行一个方法,当全部读取完毕后同样还会执行一个方法。
此时就可以进行Excel的读取了。
导入方式二:
同样,当我们学会了以后,就可以使用一行代码进行读取。
导入用代码:
try(InputStream inputStream = file.getInputStream()) {
EasyExcel.read(inputStream, 导入用的模板实体类.class, 监听器对象).sheet("sheet页名").doRead();
} catch (IOException e) {
e.printStackTrace();
}
到这里,EasyExcel的导出与导入就已经完毕了,如果有需要使用导出与导入的API我也整理了一下,但是不是太多,有需要可以看一看
EasyExcel常用API注解
如果上面的内容还没有让你能够自由使用导入功能,请看这里
EasyExcel导入实战