java:poi实现excel导入

        在开发过程中,有很多情况下需要我们来实现导入的操作,需要后端将导入的数据做解析,返回给前端,我们可以利用poi来实现一个简单的导入。

        1.第一步我们需要将poi的pom导入到我们的项目中。我这里用的4.1,可以用一个适合的版本哈。

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

        2.依赖导入进来之后,定义一个controller

    

         3.接下来我们直接看核心,我是调用的excelReader.read()方法,可以根据行数来读取数据。

然后遍历这个集合,通过get的方式获取数据,然后放到我们定义的对象里边。因为发现有的导入的时候文件里有特殊字符,我是通过replaceAll()去去除特殊字符,方法有很多哈哈哈。

@Override
    public List<ExcelOnlySourceMaterialDetailsVO> importExcel(MultipartFile file) throws IOException {
        //存放导入的excel数据
        List<ExcelOnlySourceMaterialDetailsVO> listVO = CollUtil.newArrayList();
        try (InputStream inputStream = file.getInputStream()) {
            // 调用用 hutool 方法读取数据 默认调用第一个sheet
            ExcelReader excelReader = ExcelUtil.getReader(inputStream);
            //根据行获取数据
            List<List<Object>> list = excelReader.read(2);
            for (List<Object> row : list) {
                ExcelOnlySourceMaterialDetailsVO buyerInfo = new ExcelOnlySourceMaterialDetailsVO();
                //获取excel第二行指定列的数据进行填充
                buyerInfo.setSerialNumber(row.get(0).toString().replaceAll("\\s*|\r|\n|\t", ""));
                buyerInfo.setSupplierName(row.get(1).toString().replaceAll("\\s*|\r|\n|\t", ""));
                buyerInfo.setSupplierType(row.get(2).toString().replaceAll("\\s*|\r|\n|\t", ""));
                listVO.add(buyerInfo);
            }
        } catch (Exception e) {
            throw new RuntimeException("导入出错:" + e.getMessage());
        }
        return listVO;
    }

        4.接下来测试一下数据是不是可以正常拿到,需要先定义一个excel文件,(我的开发过程中,是需要先下载一个模板)。

          数据取到了,然后set到要返回的对象里就可以啦。java导入excel的方法有很多种。有没有大佬有其它更好的方法呀,望指正呢。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值