导入maven依赖,我测试用到的版本为3.2.0
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.2.0</version>
</dependency>
实体类为
@Data
@NoArgsConstructor
@AllArgsConstructor
@HeadRowHeight(20)
@ColumnWidth(20)
@ContentRowHeight(15)
public class Student {
@ExcelProperty(index = 0, value = "姓名")
private String name;
@ExcelProperty(index = 1, value = "学工号")
private String sno;
}
excel文件为
Listtener为
public class StudentListener extends AnalysisEventListener<Student> {
@Getter
private List<Student> studentList = new ArrayList<Student>();
public StudentListener() {
super();
studentList.clear();
}
/**
* 每一条数据解析都会调用
*/
@Override
public void invoke(Student student, AnalysisContext context) {
studentList.add(student);
}
/**
* 所有数据解析完成都会调用
*/
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
studentList.forEach(System.out::println);
}
}
解析excel的代码为
StudentListener studentListener = new StudentListener();
EasyExcel.read(file.getInputStream(), Student.class, studentListener).sheet().doRead();
List<Student> studentList = studentListener.getStudentList();
studentList即可excel表格中的所有数据了