Excel导入获取指定表格的数据

目录

背景

前几天来了一个比较奇怪的需求,就excel导入的模板各长各的,不像是平时数据数据导入的格式,那没办法,按照需求做吧,先看一下这个表格长啥样
在这里插入图片描述
这还是改了一版的样子了,上一版连表头都想变,我TM(小声bb)

实现

OK,既然确定了模板,那就开搞,经过确认,这上面几个数据都是固定的,也就是说只需要取第二列(B列)和第13列(N)列的数据
不多bb,直接上代码,主要还是操作了一下原生的poi

private Result<?> addOrderImport(SalesOrder order, MultipartFile file, List<OrderImport> list, List<SalesOrderlist> addList) throws IOException {
        //生成XSSFWorkbook工作簿
        Workbook workbook = new XSSFWorkbook(file.getInputStream());
        //获取第一个sheet
        Sheet sheetAt = workbook.getSheetAt(0);
        //合同号
        String contract = sheetAt.getRow(0).getCell(1).getStringCellValue();
        //下定日期
        Date orderDate = sheetAt.getRow(1).getCell(1).getDateCellValue();
        //包装要求
        String packingReq = sheetAt.getRow(2).getCell(1).getStringCellValue();
        //备注
        String remark = sheetAt.getRow(3).getCell(1).getStringCellValue();
        //单位
        String unit = sheetAt.getRow(1).getCell(13).getStringCellValue();
        //包装规则
        String packingRule = sheetAt.getRow(2).getCell(13).getStringCellValue();
        //交期
        Date deliveryDate = sheetAt.getRow(3).getCell(13).getDateCellValue();

        //型号
        String model = null;
        //循环添加到addList中
        for (OrderImport item : list) {
            //获取型号
            model = item.getModel() != null ? item.getModel() : model;
            if (Strings.isEmpty(item.getMnum())) {
                continue;
            }
            //数量不为空
            SalesOrderlist orderDetail = new SalesOrderlist();
            BeanUtils.copyProperties(item, orderDetail);

            //单位处理(如果单位是千件,赋值给数量,自动算出重量;如果单位是公斤,赋值给重量,自动算出数量)
           //。。。
        }

        return Result.OK();
    }

主要还是利用流创建XSSFWorkbook,然后父类为Workbook,ALT+回车会自动创建XSSFWorkbook的父类,需要修改一下
getSheetAt(0)获取第一个sheet工作簿在这里插入图片描述
getRow(0):获取工作簿的第一行
getCell(1):获取第二列
getStringCellValue():返回字符串类型的数据
getDateCellValue():返回日期格式数据

然后后面的子表明细就简单了,就利用你所使用的poi工具的获取一下dto的数据进行转换就好了,修改一下第几行就行了

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值