ExcelUtil的导入导出

发布于:2024-05-02 ⋅ 阅读:(135) ⋅ 点赞:(0)

一、导入maven坐标

        <!-- hutool-all -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.23</version>
        </dependency>

二、导入excel

引用导入教程

目标将excel文件的数据进行去重并且进行分组汇总,以下是代码编写的步骤

        //保存导入的数据
        List<List<Object>> readAll;
        //根据路径读取excel表格数据
        ExcelReader reader = ExcelUtil.getReader(FileUtil.file("D:/桌面/day2表名汇总.xlsx"));
        //读取表格数据
        readAll = reader.read();
        //遍历表格数据
        HashMap<String,List<String>> map=new HashMap<>();
        for(List<Object> row : readAll) {
            //获取表格数据第一列
            Object  col1= row.get(0).toString().toLowerCase();
            //获取表格数据第二列
            Object col2 = row.get(1).toString().toLowerCase();
            //进行数据去重
            if(map.containsKey(col1)){
                List<String> list = map.get(col1);
                if(!list.contains(col2)){
                    list.add(col2.toString());
                }
            }else{
                List<String> list = new ArrayList<>();
                list.add(col2.toString());
                map.put(col1.toString(),list);
            }
        }
        //控制台打印数据
        for(String key:map.keySet()){
            System.out.println(key+"  "+map.get(key));
        }

三、导出excel

引用导出教程

        //设置要导出的路径
        ExcelWriter writer = ExcelUtil.getWriter("D:/桌面/day2表名汇总java导出.xlsx");
        //开始设置
        List<List<String>> lists=new ArrayList<>();
        //根据每行去导出数据
        for(Map.Entry<String,List<String>> entry: map.entrySet()){
            String key = entry.getKey();
            List<String> value = entry.getValue();
            for (String col : value) {
                ArrayList<String> rows = CollUtil.newArrayList(key,col);
                lists.add(rows);
            }
        }
        //开始导出
        writer.write(lists,true);
        //关闭io
        writer.close();

网站公告

今日签到

点亮在社区的每一天
去签到