导入-常规Excel导入(横表头)

业务场景

最近笔者在开发过程中,经常涉及到Excel导入,这边也对横表头文件导入做一个简单的归纳。

解决方案

1、相关依赖

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

2、方法构建

    @PostMapping(value = "/import", headers = "content-type=multipart/form-data")
    @ApiOperation(value = "导入")
    public ServiceResponse importExcel(MultipartFile file){

        List<PscEntity>list = new ArrayList<>();
        List<PscInfoEntity>pscInfoList = new ArrayList<>();
        Date date = new Date();
        try {
            //Excel数据解析
            Workbook workbook = WorkbookFactory.create(file.getInputStream());
            Sheet pscData = workbook.getSheet("ci_psc数据");
            for (int rowNum = 1; rowNum <= pscData.getLastRowNum(); rowNum++) {
                PscEntity entity = new PscEntity();
                Row row = pscData.getRow(rowNum);
                entity.setShipName(getStringValue(row.getCell(0)));
                //对应字段完善
                entity.setPscType(getStringValue(row.getCell(9)));
                list.add(entity);
            }

            Sheet pscInfoData = workbook.getSheet("ci_psc_info数据");
            for (int rowNum = 1; rowNum <= pscInfoData.getLastRowNum(); rowNum++) {
                PscInfoEntity entity = new PscInfoEntity();

                Row row = pscInfoData.getRow(rowNum);
                entity.setId(getStringValue(row.getCell(0)));
                //对应字段完善
                pscInfoList.add(entity);
            }


            // 关闭工作簿
            workbook.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        pscService.importExcel(list,pscInfoList);
        return ServiceResponse.ok("导入成功");


    }

    private String getStringValue(Cell cell) {
        if (cell == null) {
            return "";
        }
        switch (cell.getCellType()) {
            case NUMERIC:
                return String.format("%.0f", cell.getNumericCellValue());
            case STRING:
            default:
                return cell.toString();
        }
    }

尾言

以上便是对常规Excel导入的操作,有需要的同学可以参考下。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值