实现读操作。

先创建实体类,与之前的过程一致,只是注解新加一个index属性,方便进行读操作时按照序号排序依次读取。

//设置表头和添加的数据字段
@Data
@ToString
public class DemoData {

    //学生序号
    //设置excel表头名称
    @ExcelProperty(value = "学生序号", index = 0)
    private Integer sno;

    //学生名称
    //设置excel表头名称
    @ExcelProperty(value = "学生姓名", index = 1)
    private String sname;

}

读操作需要一行一行读取,这里需要实现一个监听器来完成。

public class ExcelListener extends AnalysisEventListener<DemoData> {
    @Override
    public void invoke(DemoData demoData, AnalysisContext analysisContext) {
        System.out.println("**" + demoData);
    }

    // 表头
    @Override
    public void invokeHead(Map<Integer, CellData> headMap, AnalysisContext context) {
        System.out.println("Head:" + headMap);
    }
    
    // 读取之后的操作
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}

最后测试功能。

public class TestEasyExcel {
    public static void main(String[] args) {
        //1、设置写入文件夹地址和excel文件名称
        String filename="F:\\DemoData.xlsx";

        //2、 调用easyExcel里面的方法实现读操作
        EasyExcel.
                read(filename,DemoData.class, new ExcelListener())
                .sheet()
                .doRead();

    }

控制台输出如下。

image-20211105221353788