0.jar包依赖
这里注意如果项目引入的有poi相关jar包的话可能会出现jar包版本冲突的问题
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
1.excel列与数据对象映射类@ExcelProperty(“金额”)里的值和列名一致,例如
@Data
public class DemoData {
@ExcelProperty("金额")
private BigDecimal a;
@ExcelProperty("数量")
private Long b;
@ExcelProperty("名字")
private String c;
}
2.excel解析监听类
public class ExcelReadDemoListener extends AnalysisEventListener<DemoData> {
private List<DemoData> list;
public ExcelReadDemoListener(List<DemoData> list) {
this.list = list;
}
@Override
public void invoke(DemoData demoData, AnalysisContext analysisContext) {
System.out.println("解析到一条数据:" + JSON.toJSONString(demoData));
list.add(demoData);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
System.out.println("解析完了,解析数据条数:" + list.size());
}
}
3.测试方法调用
public class TestMain {
public static void main(String[] args) throws FileNotFoundException {
InputStream fis = new FileInputStream("C:\\test.xlsx");
List<DemoData> list = new ArrayList<>();
AnalysisEventListener listener = new ExcelReadDemoListener(list);
EasyExcel.read(fis, DemoData.class, listener).sheet().doRead();
System.out.println(list);
}
}