EasyExcel读取第一行数据,读取表头

在EasyExcel中默认是不会去读取表头数据的

我们在编写EasyExcel解析类的时候,继承了AnalysisEventListener类
在这里插入图片描述
看一下该类的结构,可以看到它有invokeHeadMap这个方法
在这里插入图片描述
直接覆写这个方法,就可以得到表头数据了

public class ExcelService extends AnalysisEventListener<Map<Integer, String>> {
    
    

    private static final Logger LOGGER = LoggerFactory.getLogger(ExcelService.class);
    List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>();

    @Override
    public void invoke(Map<Integer, String> data, AnalysisContext context) {
    
    
        LOGGER.info("解析到的数据: {}", data);
        list.add(data);
    }

    @Override
    public void invokeHeadMap(Map headMap, AnalysisContext context) {
    
    
        LOGGER.info("解析到的表头数据: {}", headMap);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
    
    
        saveData();
    }

    /**
     * 如果有必要,存储到数据库
     */
    private void saveData() {
    
    
        LOGGER.info("{}条数据,开始存储数据库!", list.size());
        LOGGER.info("存储数据库成功!");
    }
}

测试

@Test
void contextLoads() {
    
    
    String fileName = "test1.xlsx";
    // 这里 只要,然后读取第一个sheet 同步读取会自动finish
    EasyExcel.read(fileName, new ExcelService()).sheet().doRead();
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Vampire69/article/details/118752126