Easyexcel使用-通用导入工具类
作者:互联网
Easyexcel使用-通用导入工具类
EasyExcel读取文件,是继承一个com.alibaba.excel.event.AnalysisEventListener类回调里面的invoke 方法来获取每一行的数据。
每读取一行,都会回调一个incoke方法
工具类编写
package com.xxx.xx.util;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
/**
* @Author caicai
* @Description Excel通用解析监听类
*
* @Date 14:18
**/
@Slf4j
public class ReadExcelUtil<T> extends AnalysisEventListener <T>{
public List<T> getAddList() {
return addList;
}
public void setAddList(List<T> addList) {
this.addList = addList;
}
List<T> addList = new ArrayList<>();
/**
* @Author caicai
* @Description
* @Date 15:25
* @Param [o 读取excel 一行的对象结果集, analysisContext]
* @return void
**/
@Override
public void invoke(T o, AnalysisContext analysisContext) {
addList.add(o);
}
/**
* @Author caicai
* @Description 读取之后的回调操作操作
* @Date 15:25
* @Param [analysisContext]
* @return void
**/
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
通用工具,我将对象封装一个泛型,来接受通用对象
此外还需要定义一个导入的表头类
表头类 定义
@Data
public class importExcelModel{
//index 标识第几列的数据
@ExcelProperty(value = "姓名",index = 0)
private String name;
@ExcelProperty(value = "年龄",index = 0)
private String age;
}
调用编写
@PostMapping("/import")
public String batchInsert(@RequestParam("file") MultipartFile file,
) throws Exception {
ReadExcelUtil<importExcelModel> readExcel = new ReadExcelUtil<importExcelModel>();
EasyExcel.read(file.getInputStream(), importExcelModel.class,readExcel )
.sheet(0)
.doRead();
//获取读取的excel对象
List<importExcelModel> list = readExcel .getAddList();
return "获取数据成功!" ;
}
标签:通用,List,Easyexcel,excel,导入,void,import,public,addList 来源: https://www.cnblogs.com/caicai920/p/16443841.html