import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
@Slf4j
public class EasyExcelListener<T> extends AnalysisEventListener<T> {
//结果集
private List<T> list = new ArrayList<>();
@Override
public void invoke(T data, AnalysisContext analysisContext) {
log.debug("解析到一条数据:{}", JSON.toJSONString(data));
list.add(data);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
log.debug("所有数据,已经解析完毕");
}
//获取结果集
public List<T> getList(){
return list;
}
}
调用方法
EasyExcelListener<Object> easyExcelListener = new EasyExcelListener<>();
//excel是MultipartFile类型的数据
InputStream inputStream = excel.getInputStream();
EasyExcel.read(inputStream, 表格中一行对应的对象.class, easyExcelListener).sheet().doRead();
//获取结果,这里获取的事是一个Object集合,用的时候得转换类型
List<Object> list = easyExcelListener.getList();
对象
public class User{
//@ExcelProperty里写对应的表头
@ExcelProperty("姓名")
private String name;
@ExcelProperty("年龄")
private Integer age;
...属性;
...有参构造器和无参构造器;
...getter和setter方法;
}