excel复杂表头easyExcel实现导出,poi实现导入

easyExcel实现获取指定模板流,渲染数据,导出模板

 public void excelExport(HttpServletResponse response, ExcelVo excelVo) {
        logger.info("供应商报价单模板导出!");
        try {
            response.setContentType("application/vnd.ms-excel");
            response.setCharacterEncoding("utf-8");
            String excelFileName = URLEncoder.encode("供应商报价", "UTF-8")
                    .replaceAll("\\+", "%20");
            response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
            response.setHeader("Content-disposition","attachment;filename=" + excelFileName + ".xlsx");
            response.setHeader("Content-Type","application/octet-stream;charset=utf-8");
            InputStream templateInputStream = null;
            ServletOutputStream outputStream = null;
            /**
             * 获取模板(模板你可以放在任何位置,前提是你能获取到。这里放在resource下
             * 根据不同的类型,获取对应的模板
             * 上半部分一样,通用一个实体类,下面一个也是通用,但是要扩展6类模板的不同的字段
             */
            String path = "";
            String priceModel = excelVo.getPriceModel();
            if (null == priceModel || " ".equals(priceModel)) {
                logger.error("请核对报价模式!");
//            throw new BusinessException("请核对报价模式!");
            }
            // excel模板导出上半部分数据封装
            ExportExcelDto exportExcelDto = new ExportExcelDto();
            // 询价主表信息
            BeanUtil.copyProperties(excelVo,exportExcelDto);
            // 1:现金,2:现金+承兑报价,3:现金+账期报价,4:承兑,5:承兑+账期,6:账期
            switch (priceModel){
                case "1":
                    path = "报价单_现金.xls";
                    exportExcelDto.setPriceModelName("现金");
                    break;
                case "2":
                    path = "报价单_现金+承兑报价.xls";
                    exportExcelDto.setPriceModelName("现金+承兑报价");
                    break;
                case "3":
                    path = "报价单_现金+账期报价.xls";
                    exportExcelDto.setPriceModelName("现金+账期报价");
                    break;
                case "4":
                    path = "报价单_承兑报价.xls";
                    exportExcelDto.setPriceModelName("承兑报价");
                    break;
                case "5":
                    path = "报价单_承兑+账期报价.xls";
                    exportExcelDto.setPriceModelName("承兑+承兑+账期报价");
                    break;
                case "6":
                    path = "报价单_账期报价.xls";
                    exportExcelDto.setPriceModelName("现金+账期报价");
                    break;
            }
            String buyofferType = excelVo.getBuyofferType();
            // 询价单类型(1:框架协议、2:普通合同、3.直接下单、4.价格调整)
            switch (buyofferType){
                case "1":
                    exportExcelDto.setBuyofferTypeName("框架协议");
                    break;
                case "2":
                    exportExcelDto.setBuyofferTypeName("普通合同");
                    break;
                case "3":
                    exportExcelDto.setBuyofferTypeName("直接下单");
                    break;
                case "4":
                    exportExcelDto.setBuyofferTypeName("价格调整");
                    break;
            }
            String quotationQtexpiredate = "";
            if (excelVo.getQtexpiredate() != null){
                String[] prefix = excelVo.getQtexpiredate().toString().split(" ");
                String[] pre = prefix[0].split("-");
                quotationQtexpiredate = pre[0]+'.'+pre[1]+'.'+pre[2];
            }
            exportExcelDto.setQuotationQtexpiredate(quotationQtexpiredate);
            try {
                ClassPathResource couponOrderTemplateResource = new ClassPathResource(path);
                outputStream = response.getOutputStream();
                templateInputStream = couponOrderTemplateResource.getInputStream();
            } catch (IOException e) {
                //            throw new BusinessException("供应商报价单模板导出失败!");
                logger.error("供应商报价单模板导出失败!");
            }
//            Quotation quotation = ipuQuotationMapper.getInfoByvbuyofferBillcode(vbuyofferBillcode);
            ArrayList<QuotationDetailDto> quotationDetailDtoList = new ArrayList<>();
            // 列数据
//            List detailInfos = quotationDetailMapper.getInfosByQuotationId(quotation.getId());
            // 实体转Vo
            ArrayList<QuotationDetailVo> quoList = excelVo.getQuoList();
            if (!CollectionUtils.isEmpty(quoList)) {
                int order = 1;
                for (QuotationDetailVo detail : quoList) {
                    QuotationDetailDto detailDto = new QuotationDetailDto();
                    BeanUtil.copyProperties(detail,detailDto);
                    String reqdate = "";
                    if (detail.getReqdate() != null) {
                        String[] prefix = detail.getReqdate().toString().split(" ");
                        String[] pre = prefix[0].split("-");
                        reqdate = pre[0] + '.' + pre[1] + '.' + pre[2];
                    }
                    detailDto.setReqdate(reqdate);
                    detailDto.setOrder(order);
                    quotationDetailDtoList.add(detailDto);
                    order++;
                }
            }
            ExcelWriter writer = EasyExcel.write(outputStream).withTemplate(templateInputStream).build();
            WriteSheet sheet = EasyExcel.writerSheet(0).build();
            FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
            writer.fill(exportExcelDto,sheet);
            writer.fill(quotationDetailDtoList,fillConfig,sheet);

            writer.finish();
            IOUtils.closeQuietly(templateInputStream);
            IOUtils.closeQuietly(outputStream);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

poi实现上传Excel文件,获取指定字段的数据,返回给前端

 @Override
    public ArrayList<RoadDataDto> importExcel(MultipartFile multipartFile, String types) throws Exception {
//         XSSFWorkbook workbook = new XSSFWorkbook(multipartFile.getInputStream());
        // 踩坑 HSSFWorkbook 读取.xls 文件, XSSFWorkbook .xlsx文件
        HSSFWorkbook workbook = new HSSFWorkbook(multipartFile.getInputStream());
        // 得到excel工作表对象HSSFSheet
//        XSSFSheet sheetAt = workbook.getSheetAt(0);
        HSSFSheet sheetAt = workbook.getSheetAt(0);
        ArrayList<RoadDataDto> roadDataDtos = new ArrayList<>();
        // types 报价模板对应的excel模板
        // 报价模式(1:现金,2:现金+承兑报价,3:现金+账期报价,4:承兑,5:承兑+账期,6:账期)
        switch (types) {
            case "1":
                roadDataDtos = typesOneInfo(sheetAt);
                break;
            case "2":
                roadDataDtos = typesTwoInfo(sheetAt);
                break;
            case "3":
                roadDataDtos = typesThreeInfo(sheetAt);
                break;
            case "4":
                roadDataDtos = typesFourInfo(sheetAt);
                break;
            case "5":
                roadDataDtos = typesFiveInfo(sheetAt);
                break;
            case "6":
                roadDataDtos = typesSixInfo(sheetAt);
                break;
        }
        return roadDataDtos;

    }


    /**
     * 账期
     * @param sheetAt
     * @throws Exception
     */
    private ArrayList<RoadDataDto> typesSixInfo(HSSFSheet sheetAt) throws Exception {
        ArrayList<RoadDataDto> RoadDataDto = new ArrayList<>();
        for (int i = 8; i < sheetAt.getLastRowNum() + 1; i++) {
            RoadDataDto roadDataDto = new RoadDataDto();
            // 报价模板是 现金
            // 获取行数
            Row row = sheetAt.getRow(i);
            //首行(即表头)不读取
            if (row != null) {
                if (row.getRowNum() == 0 || row.getRowNum() == 1 || row.getRowNum() == 2) {
                    return RoadDataDto;
                }
                // 序号
                if (row.getCell(1) != null) {
                    double orderD = row.getCell(1).getNumericCellValue();
                    Double doubleValueObject = new Double(orderD);
                    roadDataDto.setOrder(doubleValueObject.intValue());
                }
                // 品牌/产地/材质
                String suppProductName = "";
                if (row.getCell(9) != null) {
                    row.getCell(9).setCellType(CellType.STRING);
                    suppProductName = row.getCell(9).getStringCellValue();
                    roadDataDto.setSuppProductName(suppProductName);
                }
                // *税率(%)
                String taxrate = "";
                if (row.getCell(10) != null) {
                    row.getCell(10).setCellType(CellType.STRING);
                    taxrate = row.getCell(10).getStringCellValue();
                    if(ObjectUtil.isNotEmpty(taxrate)){
                        roadDataDto.setTaxrate(taxrate);
                    }else {
                        throw new Exception("税率字段信息不能为空!");
                    }
                }
                // *含税单价(账期)
                String paymentPrice = "";
                if (row.getCell(11) != null) {
                    row.getCell(11).setCellType(CellType.STRING);
                    paymentPrice = row.getCell(11).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(paymentPrice)) {
                        roadDataDto.setPaymentPrice(paymentPrice);
                    } else {
                        throw new Exception("含税单价(账期)字段信息不能为空!");
                    }
                }

                // *交货日期
                String deliveryDate = "";
                if (row.getCell(12) != null) {
                    row.getCell(12).setCellType(CellType.STRING);
                    deliveryDate = row.getCell(12).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(deliveryDate)) {
                        roadDataDto.setDeliveryDate(deliveryDate);
                    } else {
                        throw new Exception("交货日期字段信息不能为空!");
                    }
                }
                // 质保期
                String shelfLife = "";
                if (row.getCell(14) != null) {
                    row.getCell(14).setCellType(CellType.STRING);
                    shelfLife = row.getCell(14).getStringCellValue();
                    roadDataDto.setShelfLife(shelfLife);
                }
            }
            RoadDataDto.add(roadDataDto);
        }
        return RoadDataDto;
    }


    /**
     * 承兑+账期
     * @param sheetAt
     * @throws Exception
     */
    private ArrayList<RoadDataDto> typesFiveInfo(HSSFSheet sheetAt) throws Exception {
        ArrayList<RoadDataDto> RoadDataDto = new ArrayList<>();
        for (int i = 8; i < sheetAt.getLastRowNum() + 1; i++) {
            RoadDataDto roadDataDto = new RoadDataDto();
            // 报价模板是 现金
            // 获取行数
            Row row = sheetAt.getRow(i);
            //首行(即表头)不读取
            if (row != null) {
                if (row.getRowNum() == 0 || row.getRowNum() == 1 || row.getRowNum() == 2) {
                    return RoadDataDto;
                }
                // 序号
                if (row.getCell(1) != null) {
                    double orderD = row.getCell(1).getNumericCellValue();
                    Double doubleValueObject = new Double(orderD);
                    roadDataDto.setOrder(doubleValueObject.intValue());
                }
                // 品牌/产地/材质
                String suppProductName = "";
                if (row.getCell(9) != null) {
                    row.getCell(9).setCellType(CellType.STRING);
                    suppProductName = row.getCell(9).getStringCellValue();
                    roadDataDto.setSuppProductName(suppProductName);
                }
                // *税率(%)
                String taxrate = "";
                if (row.getCell(10) != null) {
                    row.getCell(10).setCellType(CellType.STRING);;
                    taxrate = row.getCell(10).getStringCellValue();
                    if(ObjectUtil.isNotEmpty(taxrate)){
                        roadDataDto.setTaxrate(taxrate);
                    }else {
                        throw new Exception("税率字段信息不能为空!");
                    }
                }
                // *含税单价(承兑)
                String acceptancePrice = "";
                if (row.getCell(11) != null) {
                    row.getCell(11).setCellType(CellType.STRING);
                    acceptancePrice = row.getCell(11).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(acceptancePrice)) {
                        roadDataDto.setAcceptancePrice(acceptancePrice);
                    } else {
                        throw new Exception("含税单价(承兑)字段信息不能为空!");
                    }
                }
                // *含税单价(账期)
                String paymentPrice = "";
                if (row.getCell(12) != null) {
                    row.getCell(12).setCellType(CellType.STRING);
                    paymentPrice = row.getCell(12).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(paymentPrice)) {
                        roadDataDto.setPaymentPrice(paymentPrice);
                    } else {
                        throw new Exception("含税单价(账期)字段信息不能为空!");
                    }
                }

                // *交货日期
                String deliveryDate = "";
                if (row.getCell(13) != null) {
                    row.getCell(13).setCellType(CellType.STRING);
                    deliveryDate = row.getCell(13).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(deliveryDate)) {
                        roadDataDto.setDeliveryDate(deliveryDate);
                    } else {
                        throw new Exception("交货日期字段信息不能为空!");
                    }
                }
                // 质保期
                String shelfLife = "";
                if (row.getCell(15) != null) {
                    row.getCell(15).setCellType(CellType.STRING);
                    shelfLife = row.getCell(15).getStringCellValue();
                    roadDataDto.setShelfLife(shelfLife);
                }
            }
            RoadDataDto.add(roadDataDto);
        }
        return RoadDataDto;
    }

    /**
     * 承兑
     * @param sheetAt
     * @throws Exception
     */
    private ArrayList<RoadDataDto> typesFourInfo(HSSFSheet sheetAt) throws Exception {
        ArrayList<RoadDataDto> RoadDataDto = new ArrayList<>();
        for (int i = 8; i < sheetAt.getLastRowNum() + 1; i++) {
            RoadDataDto roadDataDto = new RoadDataDto();
            // 报价模板是 现金
            // 获取行数
            Row row = sheetAt.getRow(i);
            //首行(即表头)不读取
            if (row != null) {
                if (row.getRowNum() == 0 || row.getRowNum() == 1 || row.getRowNum() == 2) {
                    return RoadDataDto;
                }
                // 序号
                if (row.getCell(1) != null) {
                    double orderD = row.getCell(1).getNumericCellValue();
                    Double doubleValueObject = new Double(orderD);
                    roadDataDto.setOrder(doubleValueObject.intValue());
                }
                // 品牌/产地/材质
                String suppProductName = "";
                if (row.getCell(9) != null) {
                    row.getCell(9).setCellType(CellType.STRING);
                    suppProductName = row.getCell(9).getStringCellValue();
                        roadDataDto.setSuppProductName(suppProductName);
                }
                // *税率(%)
                String taxrate = "";
                if (row.getCell(10) != null) {
                    row.getCell(10).setCellType(CellType.STRING);
                    taxrate = row.getCell(10).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(taxrate)) {
                        roadDataDto.setTaxrate(taxrate);
                    } else {
                        throw new Exception("税率字段信息不能为空!");
                    }
                }
                // *含税单价(承兑)
                String acceptancePrice = "";
                if (row.getCell(11) != null) {
                    row.getCell(11).setCellType(CellType.STRING);
                    acceptancePrice = row.getCell(11).getStringCellValue();
                    if(ObjectUtil.isNotEmpty(acceptancePrice)){
                        roadDataDto.setAcceptancePrice(acceptancePrice);
                    }else {
                        throw new Exception("含税单价(承兑)字段信息不能为空!");
                    }
                }
                // *交货日期
                String deliveryDate = "";
                if (row.getCell(12) != null) {
                    row.getCell(12).setCellType(CellType.STRING);
                    deliveryDate = row.getCell(12).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(deliveryDate)) {
                        roadDataDto.setDeliveryDate(deliveryDate);
                    } else {
                        throw new Exception("交货日期字段信息不能为空!");
                    }
                }
                // 质保期
                String shelfLife = "";
                if (row.getCell(14) != null) {
                    row.getCell(14).setCellType(CellType.STRING);
                    shelfLife = row.getCell(14).getStringCellValue();
                    roadDataDto.setShelfLife(shelfLife);
                }
            }
            RoadDataDto.add(roadDataDto);
        }
        return RoadDataDto;
    }


    /**
     * 现金+账期报价
     * @param sheetAt
     * @throws Exception
     */
    private ArrayList<RoadDataDto> typesThreeInfo(HSSFSheet sheetAt) throws Exception {
        ArrayList<RoadDataDto> RoadDataDto = new ArrayList<>();
        for (int i = 8; i < sheetAt.getLastRowNum() + 1; i++) {
            RoadDataDto roadDataDto = new RoadDataDto();
            // 报价模板是 现金
            // 获取行数
            Row row = sheetAt.getRow(i);
            //首行(即表头)不读取
            if (row != null) {
                if (row.getRowNum() == 0 || row.getRowNum() == 1 || row.getRowNum() == 2) {
                    return RoadDataDto;
                }
                // 序号
                if (row.getCell(1) != null) {
                    row.getCell(1);
                    double orderD = row.getCell(1).getNumericCellValue();
                    Double doubleValueObject = new Double(orderD);
                    roadDataDto.setOrder(doubleValueObject.intValue());
                }
                // 品牌/产地/材质
                String suppProductName = "";
                if (row.getCell(9) != null) {
                    suppProductName = row.getCell(9).getStringCellValue();
                    roadDataDto.setSuppProductName(suppProductName);
                }
                // *税率(%)
                String taxrate = "";
                if (row.getCell(10) != null) {
                    row.getCell(10).setCellType(CellType.STRING);
                    taxrate = row.getCell(10).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(taxrate)) {
                        roadDataDto.setTaxrate(taxrate);
                    } else {
                        throw new Exception("税率字段信息不能为空!");
                    }

                }
                // *含税单价(现金)
                String price = "";
                if (row.getCell(11) != null) {
                    row.getCell(11).setCellType(CellType.STRING);
                    price = row.getCell(11).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(price)) {
                        roadDataDto.setPrice(price);
                    } else {
                        throw new Exception("含税单价(现金)字段信息不能为空!");
                    }
                }

                // *含税单价(账期)
                String paymentPrice = "";
                if (row.getCell(12) != null) {
                    row.getCell(12).setCellType(CellType.STRING);
                    paymentPrice = row.getCell(12).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(paymentPrice)) {
                        roadDataDto.setPaymentPrice(paymentPrice);
                    } else {
                        throw new Exception("含税单价(账期)字段信息不能为空!");
                    }

                }
                // *交货日期
                String deliveryDate = "";
                if (row.getCell(13) != null) {
                    row.getCell(1).setCellType(CellType.STRING);
                    deliveryDate = row.getCell(13).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(deliveryDate)) {
                        roadDataDto.setDeliveryDate(deliveryDate);
                    } else {
                        throw new Exception("交货日期字段信息不能为空!");
                    }
                }
                // 质保期
                String shelfLife = "";
                if (row.getCell(15) != null) {
                    row.getCell(15).setCellType(CellType.STRING);
                    shelfLife = row.getCell(15).getStringCellValue();
                    roadDataDto.setShelfLife(shelfLife);
                }
            }
            RoadDataDto.add(roadDataDto);
        }
        return RoadDataDto;
    }


    /**
     * 现金+承兑报价
     * @param sheetAt
     * @throws Exception
     */
    private ArrayList<RoadDataDto> typesTwoInfo(HSSFSheet sheetAt) throws Exception {
        ArrayList<RoadDataDto> RoadDataDto = new ArrayList<>();
        for (int i = 8; i < sheetAt.getLastRowNum() + 1; i++) {
            RoadDataDto roadDataDto = new RoadDataDto();
            // 报价模板是 现金
            // 获取行数
            Row row = sheetAt.getRow(i);
            //首行(即表头)不读取
            if (row != null) {
                if (row.getRowNum() == 0 || row.getRowNum() == 1 || row.getRowNum() == 2) {
                    return RoadDataDto;
                }
                // 序号
                if (row.getCell(1) != null) {
                    double orderD = row.getCell(1).getNumericCellValue();
                    Double doubleValueObject = new Double(orderD);
                    roadDataDto.setOrder(doubleValueObject.intValue());
                }
                // 品牌/产地/材质
                String suppProductName = "";
                if (row.getCell(9) != null) {
                    suppProductName = row.getCell(9).getStringCellValue();
                    roadDataDto.setSuppProductName(suppProductName);
                }
                // *税率(%)
                String taxrate = "";
                if (row.getCell(10) != null) {
                    row.getCell(10).setCellType(CellType.STRING);
                    taxrate = row.getCell(10).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(taxrate)) {
                        roadDataDto.setTaxrate(taxrate);
                    } else {
                        throw new Exception("税率字段信息不能为空!");
                    }
                }

                // *含税单价(现金)
                String price = "";
                if (row.getCell(11) != null) {
                    row.getCell(11).setCellType(CellType.STRING);
                    price = row.getCell(11).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(price)) {
                        roadDataDto.setPrice(price);
                    } else {
                        throw new Exception("含税单价(现金)字段信息不能为空!");
                    }
                }

                // *含税单价(承兑)
                String acceptancePrice = "";
                if (row.getCell(12) != null) {
                    row.getCell(12).setCellType(CellType.STRING);
                    acceptancePrice = row.getCell(12).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(acceptancePrice)) {
                        roadDataDto.setAcceptancePrice(acceptancePrice);
                    } else {
                        throw new Exception("含税单价(承兑)字段信息不能为空!");
                    }
                }
                // *交货日期
                String deliveryDate = "";
                if (row.getCell(13) != null) {
                    row.getCell(13).setCellType(CellType.STRING);
                    deliveryDate = row.getCell(13).getStringCellValue();
                    if (ObjectUtil.isNotEmpty(deliveryDate)) {
                        roadDataDto.setDeliveryDate(deliveryDate);
                    } else {
                        throw new Exception("交货日期字段信息不能为空!");
                    }
                }
                // 质保期
                String shelfLife = "";
                if (row.getCell(15) != null) {
                    row.getCell(15).setCellType(CellType.STRING);
                    shelfLife = row.getCell(15).getStringCellValue();
                    roadDataDto.setShelfLife(shelfLife);
                }
            }
            RoadDataDto.add(roadDataDto);
        }
        return RoadDataDto;
    }

    /**
     *
     * @param sheetAt
     * @throws Exception
     */
    private ArrayList<RoadDataDto> typesOneInfo(HSSFSheet sheetAt) throws Exception {
        ArrayList<RoadDataDto> RoadDataDto = new ArrayList<>();
        for (int i = 8; i < sheetAt.getLastRowNum() + 1; i++) {
            RoadDataDto roadDataDto = new RoadDataDto();
            // 报价模板是 现金
            // 获取行数
            Row row = sheetAt.getRow(i);
            //首行(即表头)不读取
            if (row != null) {
                if (row.getRowNum() == 0 || row.getRowNum() == 1 || row.getRowNum() == 2) {
                    return RoadDataDto;
                }
                int ii = i + 1;//读取当前行中单元格数据,索引从0开始
                // 序号
                if (row.getCell(1) != null) {
                    double orderD = row.getCell(1).getNumericCellValue();
                    Double doubleValueObject = new Double(orderD);
                    roadDataDto.setOrder(doubleValueObject.intValue());
                }
                // 品牌/产地/材质
                String suppProductName = "";
                if (row.getCell(9) != null) {
                    suppProductName = row.getCell(9).getStringCellValue();
                    roadDataDto.setSuppProductName(suppProductName);
                }
                // *税率(%)
                String taxrate = "";
                if (row.getCell(10) != null) {
                    taxrate = String.valueOf(row.getCell(10).getNumericCellValue());
                    if (!"0.0".equals(taxrate)) {
                        roadDataDto.setTaxrate(taxrate);
                    } else {
                        throw new Exception("税率字段信息不能为空!");
                    }
                }
                // *含税单价(现金)
                String price = "";
                if (row.getCell(11) != null) {
                    price = String.valueOf(row.getCell(11).getNumericCellValue());
                    if (!"0.0".equals(taxrate)) {
                        roadDataDto.setPrice(price);
                    } else {
                        throw new Exception("含税单价(现金)字段信息不能为空!");
                    }
                }
                // *交货日期
                String deliveryDate = "";
                if (row.getCell(12) != null) {
                    deliveryDate = row.getCell(12).getStringCellValue();
                    roadDataDto.setDeliveryDate(deliveryDate);
                }else {
                    throw new Exception("交货日期字段信息不能为空!");
                }
                // 质保期
                String shelfLife = "";
                if (row.getCell(14) != null) {
                    shelfLife = String.valueOf(row.getCell(14).getNumericCellValue());
                    roadDataDto.setShelfLife(shelfLife);
                }
            }
            RoadDataDto.add(roadDataDto);
        }
        return RoadDataDto;
    }

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