解析Excel数据并导出新的Excel

<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.15</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.15</version>
        </dependency>
@GetMapping("daorujiadaochu")
    public List<SchoolInfoAAAAAAAAAAAAAAAAAVo> testTwo() {
        String[] a = {
                "序号",
                "学校名称",
                "类型",
                "档次",
                "省份",
                "区域",
                "专业群名称",
                "任务书专业代码",
                "专业名称",
                "调整方式",
                "调整后代码",
                "调整后名称"
        };
        // 表头
        StringBuilder head = new StringBuilder();
        for (int i = 0; i < a.length; i++) {
            head.append(a[i]).append(",");
        }
        String filePathOne = "C:\\Users\\10940\\Desktop\\bbb.csv";
        String filePath = "C:\\Users\\10940\\Desktop\\20210428-专业变更统计.xlsx";
        head.deleteCharAt(a.length-1);
        FileUtil.appendFile(filePathOne, head.toString());
       List<SchoolInfoAAAAAAAAAAAAAAAAAVo> schoolInfoAAAAAAAAAAAAAAAAAVos = schoolDao.selectZhuanye();
        List<SchoolInfoBBBBBBBBBBBBBBBBBBVo> schoolInfoBBBBBBBBBBBBBBBBBBVos = new ArrayList<>();

        try {
            //String encoding = "GBK";
            File excel = new File(filePath);
            if (excel.isFile() && excel.exists()) {   //判断文件是否存在

                String[] split = excel.getName().split("\\.");  //.是特殊字符,需要转义!!!!!
                Workbook wb;
                //根据文件后缀(xls/xlsx)进行判断
                if ( "xls".equals(split[1])){
                    FileInputStream fis = new FileInputStream(excel);   //文件流对象
                    wb = new HSSFWorkbook(fis);
                }else if ("xlsx".equals(split[1])){
                    wb = new XSSFWorkbook(excel);
                }else {
                    System.out.println("文件类型错误!");
                    return null;
                }

                //开始解析
                Sheet sheet = wb.getSheetAt(0);     //读取sheet 0

                int firstRowIndex = sheet.getFirstRowNum()+1;   //第一行是列名,所以不读
                int lastRowIndex = sheet.getLastRowNum();
                System.out.println("firstRowIndex: "+firstRowIndex);
                System.out.println("lastRowIndex: "+lastRowIndex);
                for(int rIndex = firstRowIndex; rIndex <= lastRowIndex; rIndex++) {   //遍历行
                    System.out.println("rIndex: " + rIndex);
                    Row row = sheet.getRow(rIndex);
                    if (row != null) {
                        //获取这一行的第一列 从0开始
                        int firstcell=    row.getFirstCellNum();
                        //获取这一行的最后一列
                        int lastcell=    row.getLastCellNum();
                        //创建一个集合,用处将每一行的每一列数据都存入集合中

                        for (int j = firstcell; j <lastcell; j++) {//循环列数
                            //获取第j列
                            Cell cell = row.getCell(j);
                            if (cell != null) {
                                System.out.print(cell + "\t");
                            }
                        }
                        SchoolInfoBBBBBBBBBBBBBBBBBBVo schoolInfoBBBBBBBBBBBBBBBBBBVo = new SchoolInfoBBBBBBBBBBBBBBBBBBVo();
                        schoolInfoBBBBBBBBBBBBBBBBBBVo.setOne(row.getCell(0).toString());
                        schoolInfoBBBBBBBBBBBBBBBBBBVo.setTwo(row.getCell(1).toString());
                        schoolInfoBBBBBBBBBBBBBBBBBBVo.setThree(row.getCell(2).toString());
                        schoolInfoBBBBBBBBBBBBBBBBBBVo.setFour(row.getCell(3).toString());
                        schoolInfoBBBBBBBBBBBBBBBBBBVo.setFive(row.getCell(4).toString());
                        schoolInfoBBBBBBBBBBBBBBBBBBVo.setSix(row.getCell(5).toString());
                        schoolInfoBBBBBBBBBBBBBBBBBBVo.setSeven(row.getCell(6).toString());
                        schoolInfoBBBBBBBBBBBBBBBBBBVo.setEight(row.getCell(7).toString());
                        schoolInfoBBBBBBBBBBBBBBBBBBVos.add(schoolInfoBBBBBBBBBBBBBBBBBBVo);
                    }
                }
            } else {
                System.out.println("找不到指定的文件");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        schoolInfoAAAAAAAAAAAAAAAAAVos.forEach(c -> {
            List<SchoolInfoBBBBBBBBBBBBBBBBBBVo> collect = schoolInfoBBBBBBBBBBBBBBBBBBVos.stream().filter(e -> e.getTwo().equals(c.getProfessionName())).collect(Collectors.toList());
            if (collect.size()>0){
                c.setFangShi(collect.get(0).getSix());
                c.setProfessionCodeHou(collect.get(0).getSeven());
                c.setProfessionNameHou(collect.get(0).getEight());
            }
        });
        for (int i=0;i<schoolInfoAAAAAAAAAAAAAAAAAVos.size();i++) {
            StringBuilder sb = new StringBuilder();
            sb.append(i).append(",");
            sb.append(schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getSchoolName()).append(",");
            sb.append(schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getCatgory() == 1?"高水平学校":"高水平专业群").append(",");
            sb.append(SeniorUtil.getSchoolGearNameByGearKey(schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getGear())).append("档,");
            sb.append(schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince()).append(",");
            sb.append(
                    schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("北京市") || schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("天津市") ||
                            schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("河北省") || schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("辽宁省") ||
                            schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("上海市") || schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("江苏省") ||
                            schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("浙江省") || schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("福建省") ||
                            schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("山东省") || schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("广东省") ||
                            schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("海南省") ? "东部" :
                            schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("山西省") || schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("吉林省") ||
                            schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("黑龙江省") || schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("安徽省") ||
                            schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("江西省") || schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("河南省") ||
                            schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("湖北省") || schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProvince().equals("湖南省") ? "中部" : "西部").append(",");
            sb.append(schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getSpecialtyName()).append(",");
            sb.append(schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProfessionCode()).append(",");
            sb.append(schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProfessionName()).append(",");
            sb.append(schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getFangShi()).append(",");
            sb.append(schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProfessionCodeHou()).append(",");
            sb.append(schoolInfoAAAAAAAAAAAAAAAAAVos.get(i).getProfessionNameHou()).append(",");
            FileUtil.appendFile(filePathOne, sb.toString());
        }
        return schoolInfoAAAAAAAAAAAAAAAAAVos;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值