1、<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.3</version>
</dependency>
2、自定义Listener,继承AnalysisEventListener
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import java.util.ArrayList;
import java.util.List;
public class ExcelListener extends AnalysisEventListener {
private List<Object> datas = new ArrayList<>();
@Override
public void invoke(Object o, AnalysisContext analysisContext) {
datas.add(o);//逐行添加解析数据
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
//获取所有数据
public List<Object> getDatas() {
return datas;
}
public void setDatas(List<Object> datas) {
this.datas = datas;
}
}
3、定义实体类,解析后映射到对象
public class A extends BaseRowModel implements Serializable {
private String dept;
private String pointName;
@ExcelProperty(value = "dept", index = 2)//index第几列
private String dept;
@ExcelProperty(value = "pointName", index = 3)
private String pointName;
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
}
4、解析
InputStream inputStream=new FileInputStream(new File("文件路径或者
multipartFile.getInputStream
"));
EasyExcel.read(inputStream,A.class,listener).sheet(0).doRead();
List<Object> list = listener.getDatas();
for(int j=0;j<list.size();j++){
A content=(A)list.get(j);
//调用保存方法保存A
}