目录
前言
平常的功能大家应该都会用到导入导出excel的功能,比如通过读excel的方式将excel的数据导入到数据库中。当然实现的方式有很多,今天我介绍的是利用阿里开源的easyexcel项目来完成功能。大家也可以自己看easyexcel的文档进行开发。当然这里因为刚好工作的时候用到了,所以将自己写的demo分享出来,大家就可以更快节省时间完成功能,大家可以参考,也可以直接拿来用,实际在你们自己的开发过程当中适当修改。
EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。
github地址:github.com/alibaba/eas…
一、引入easyexcel的maven
1 | xml复制代码 <dependency> |
首先springBoot项目结构大家看一下,除了最简单的三层架构,dao、service和controller,这里还需要用到listener
)
二、读取excel代码示例
1、bean需要和excel的列对应
可以通过index和name将bean和excel的列对应起来,但是官方不建议index和name同时夹杂在一起用,顾名思义,在一个bean中要么就是用index,要么就是用name对应
eg:@ExcelProperty(index = 2)
eg:@ExcelProperty(“日期标题”)
demo
1 | typescript复制代码package com.xxx.xxxx.xxxx; |
2、Controller层
很简单,就注入service,引用service的方法,我们在service里进行入参的判断或者其他业务处理等,这里我就直接放一个impl的了,interface是一样的名字,放一个没有实现的方法就可以了,当然你也可以不要那个interface
demo
1 | typescript复制代码@RequestMapping("/mrePortController") |
3、service层
这里我们进行逻辑判断,可以对入参或者其他一些东西进行判断,
主要功能是
1 | scss复制代码// 将excel表中的数据入库 |
demo
1 | typescript复制代码@Component |
4、listener层
注意这个不是mvc的三层架构,这里加listener是因为easyexcel需要用到,实际上解析excel的过程就是在这里实行的,如果要对解析出来的每一行数据或者其中的一列进行另外的判断或者做其他处理,是要到这个类里面写逻辑
RoomMonitorCoverDataListener.java
demo
1 | arduino复制代码/** |
5、dao层
因为我们这里还是用的springJPA,所以大家可以看到上面我处理excel中的数据,要对原来数据库中的数据进行删除的时候,还是用拼接的那种格式,这里大家要结合自己的框架进行修改,相信作为技术人,你们改改还是可以的,如果有遇到不会改的,可以关注我的公众号:zygxsq,公众号里有我的微信方式,可以联系我
demo
1 | java复制代码/** |
二、导出excel代码示例
待更新
本文转载自: 掘金