1.
添加依赖
<dependency>
<groupId></groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.0</version>
</dependency>
2. 定义实体类
注解:@ExcelProperty("参数"),参数对应Excel中的列名,没有顺序,想取哪一列就写哪一列。
public class ReportDetail {
// ExcelIgnore 注解:实体类需要,但是Excel中没有的列,这里的id是数据库的自增ID主键
@ExcelIgnore
private Integer id;
@ExcelProperty("姓名")//Excel中的列名
private String personName;
.
.
// 无参构造 :必须
// 有参构造,get/set方法
3. 定义存放Excel中数据的list集合
ArrayList<ReportDetail> reportDetails = new ArrayList<>();
4. 读取Excel
read方法中的参数:
第一个参数:path:Excel文件的路径或者InputStream
第二个参数:实体类
第三个参数:ReadListener的匿名实现类,泛型中的参数:实体类类型
EasyExcel.read(路径, 实体类类名.class, new AnalysisEventListener<实体类类名>() {
@Override
public void invoke(实体类类名 形参, AnalysisContext analysisContext) {
list集合.add(形参);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {}
}).sheet("Excel中的表名,默认第一个表").doRead();
- 对应上面的实体类和list集合
EasyExcel.read(path, ReportDetail.class, new AnalysisEventListener<ReportDetail>() {
@Override
public void invoke(ReportDetail reportExcel, AnalysisContext analysisContext) {
// 将读取到的每一行存入reportDetails集合中
reportDetails.add(reportExcel);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {}
}).sheet().doRead();