Java 使用EasyExcel解析导入的Excel文件

        最近在做项目时,有遇到需要使用excel导入的场景,以前也有写过使用 Apache.poi 来解析导入数据,但整体解析逻辑比较繁琐,封装成工具类后也不是很好用(这个可能是我个人技术原因,和poi无关)。

        这次开发时,在网上找了个更加简洁的方式,即通过使用 alibaba 的 easyExcel 来解析,整个过程更加友好,不管是获取标题、每一行数据还是整体的结果,都更加便利,不需要关心解析逻辑,只要按需实现我们自身的业务逻辑就好。以下为我个人对此整理的一个简单示例:

一、导包

        
        
            com.alibaba
            easyexcel
            3.0.5
        

二、代码实现

    public static List readExcel(FileInputStream fileInputStream) {
        List resultList = new ArrayList<>();

        EasyExcel.read(fileInputStream,new AnalysisEventListener>() {

            private Map headMap;

            //获取标题数据
            @Override
            public void invokeHeadMap(Map headMap, AnalysisContext context) {
                this.headMap = headMap;
                System.out.println("解析到的表头数据: " + headMap);
            }

            //处理每一行数据
            @Override
            public void invoke(Map rowData, AnalysisContext context) {
                //把key替换成标题
                Map temp = new HashMap();
                for (Map.Entry entry : rowData.entrySet()) {
                    temp.put(headMap.get(entry.getKey()), entry.getValue());
                }
                resultList.add(temp);
            }

            @Override
            public void doAfterAllAnalysed(AnalysisContext context) {
                //所有行都解析完成
            }
        }).headRowNumber(2).sheet().doRead();

        return resultList;
    }

你可能感兴趣的:(excel,easyExcel)