【无标题】

java操作excel

//    @PostMapping(value = "/importUserInfo")  入参: FileUploadModel fileUploadModel
    public ResultMessage importUserInfo() throws Exception{
        FileUploadModel fileUploadModel = new FileUploadModel();
        fileUploadModel.setFileBody(FileUtil.file2Str("C:\\Users\\Admin\\Desktop\\userInfo.xlsx"));
        if(StringUtils.isEmpty(fileUploadModel.getFileName()) || StringUtils.isEmpty(fileUploadModel.getFileBody())){
            return ResultMessage.getInstance(CodeEnum.PARAM_ERROR);
        }

        if(!fileUploadModel.getFileName().endsWith(ExcelUtils.XLS) && !fileUploadModel.getFileName().endsWith(ExcelUtils.XLSX)){
            return ResultMessage.getInstance(CodeEnum.PARAM_ERROR.getCode(), "仅支持xls或xlsx文件!");
        }

        byte[] bytes = transFile(fileUploadModel.getFileBody());
        if(bytes == null){
            return ResultMessage.getFailInstance("文件解析异常!");
        }
        InputStream inputStream = new ByteArrayInputStream(bytes);
        Workbook workbook = ExcelUtils.transformInputStreamToWorkbook(fileUploadModel.getFileName(), inputStream);
        if (workbook == null) {
            return ResultMessage.getFailInstance("EXCEL数据读取异常!");
        }
        List<JSONObject> list = ExcelUtils.getExcelData(workbook, null);
        if(list == null){
            return ResultMessage.getFailInstance("EXCEL数据读取异常!");
        }

        if(logger.isInfoEnabled()){
            log.info("excel读取数据结果为:{}行,结果:{}", list.size(), JSON.toJSONString(list));
        }

        int insertNum = 0;

        for(int i=0;i<list.size();i++){
            JSONObject object = list.get(i);
            try {
                UserInfo info = new UserInfo();
                info.setId(Integer.parseInt(object.getString("id")));
			    info.setUserName(object.getString("userName"));
                info.setPassword(object.getString("password"));
                info.setStatus(Integer.parseInt(object.getString("status")));
                userInfoMapper.insertUserInfo(info);
                insertNum ++;
            }catch (Exception e){
                log.error("error:",e);
            }
        }
        JSONObject res = new JSONObject();
        res.put("insertNum", insertNum);
        return ResultMessage.getSuccessInstance(res);
    }

	private byte[] transFile(String fileStr){
            byte[] b = Base64.decodeBase64(fileStr);
            for(int i=0;i<b.length;++i){
                if(b[i]<0){
                    b[i]+=256;
                }
            }
            return b;
    }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值