1.新建boot工程
2.导入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
3.关键程序
服务层
/**
* MultipartFile file:前端用来处理客户端发送过来的excel文档
* UserVo:UserVo中的属性和excel表中的字段对应
*/
@Override
public void importExcel(MultipartFile file) {
try {
EasyExcel.read(file.getInputStream(), UserVo.class,new ExcelListener(userMapper)).sheet().doRead();
} catch (IOException e) {
e.printStackTrace();
}
}
监听
/**
* 继承AnalysisEventListener类重写方法
*/
public class ExcelListener extends AnalysisEventListener<UserVo> {
private UserMapper userMapper;
/**
*创建ExcelListener类时,通过构造方法给userMapper赋值
*/
public ExcelListener(UserMapper userMapper) {
this.userMapper = userMapper;
}
//一读读一行
@Override
public void invoke(UserVo userVo, AnalysisContext analysisContext) {
UserDomain userDomain = new UserDomain();
BeanUtils.copyProperties(userVo,userDomain);
userMapper.insert(userDomain);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
vo类
/**
* 与excel中的字段对应
*/
@Data
public class UserVo {
@ExcelProperty("名称")
private String name;
@ExcelProperty("编号")
private String num;
@ExcelProperty("联系方式")
private String phone;
}