java easypoi导入Excel文件案例

 <dependency>
  <groupId>cn.afterturn</groupId>
  <artifactId>easypoi-base</artifactId>
  <version>3.2.0</version>
</dependency>
<dependency>
   <groupId>cn.afterturn</groupId>
   <artifactId>easypoi-annotation</artifactId>
   <version>3.2.0</version>
</dependency>
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-web</artifactId>
    <version>3.2.0</version>
</dependency>

        

  public AjaxJson importData(HttpServletRequest request,MultipartFile mFile) {
        List<Map<String, Object>> dataSource = new ArrayList<>();
        AjaxJson ajaxJson = new AjaxJson();
        int rowNum = 0;
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());

        if (multipartResolver.isMultipart(request)){
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            //开始导入文件
            mFile = multipartRequest.getFile("mFile");
            String eName = "";
            if(mFile==null){
                ajaxJson.setSuccess(false);
                ajaxJson.setMsg("请上传数据源文件!");
                return ajaxJson;
            }
            // 获得上传文件的文件名
            String fileName = mFile.getOriginalFilename();
            // 获取文件扩展名
            eName = fileName.substring(fileName.lastIndexOf(".") + 1);
            if(!"xls".equals(eName)&&!"xlsx".equals(eName)){
                ajaxJson.setSuccess(false);
                ajaxJson.setMsg("请上传正确格式的数据源文件!");
                return ajaxJson;
            }
            //数据是否正确;
            Workbook workbook = null;

            try {
                InputStream inputStream = mFile.getInputStream();
                if ("xls".equals(eName)) {
                    // 2003
                    workbook = new HSSFWorkbook(inputStream);
                } else {
                    // 2007
                    workbook = new XSSFWorkbook(inputStream);
                }

                // 获取工作薄第一张表
                Sheet sheet = workbook.getSheetAt(0);
                // 获取名称
                String sheetName = sheet.getSheetName().trim();
                // 获取第一行
                Row row = sheet.getRow(0);
                if(null == row){
                    ajaxJson.setSuccess(false);
                    ajaxJson.setMsg("模板错误,请重新上传!");
                    return ajaxJson;

                }
                // 获得有效行数
                rowNum = sheet.getLastRowNum();
                if(0==rowNum){
                    ajaxJson.setSuccess(false);
                    ajaxJson.setMsg("数据源表中数据不得小于1条!");
                    return ajaxJson;
                }


                for (int i = 1; i <= rowNum; i++) {
                    row = sheet.getRow(i);
                    if(null==row.getCell(0)){
                        row.createCell(0);
                    }
                    row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);

                    if(null==row.getCell(1)){
                        row.createCell(1);
                    }
                    row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);

                    if(null==row.getCell(2)){
                        row.createCell(2);
                    }
                    row.getCell(2).setCellType(Cell.CELL_TYPE_STRING);
                    if(null==row.getCell(3)){
                        row.createCell(3);
                    }
                    row.getCell(3).setCellType(Cell.CELL_TYPE_STRING);

                    if(null==row.getCell(4)){
                        row.createCell(4);
                    }
                    row.getCell(4).setCellType(Cell.CELL_TYPE_STRING);

                    if(null==row.getCell(5)){
                        row.createCell(5);
                    }
                    row.getCell(5).setCellType(Cell.CELL_TYPE_STRING);


                    Pmcused pmcused = new Pmcused();
                    if(row.getCell(0)!=null && !"".equals(row.getCell(0).getStringCellValue())) {
                        pmcused.setId(row.getCell(0).getStringCellValue());//ID
                    }



                    if(row.getCell(1)!=null && !"".equals(row.getCell(1).getStringCellValue())){
                        pmcused.setCreateTime(row.getCell(1).getStringCellValue());
                    }

                    if(row.getCell(2)!=null && !"".equals(row.getCell(2).getStringCellValue())){
                        pmcused.setStartTime(row.getCell(2).getStringCellValue());
                    }
                    if(row.getCell(3)!=null && !"".equals(row.getCell(3).getStringCellValue())){
                        pmcused.setEndTime(row.getCell(3).getStringCellValue());
                    }
                    if(row.getCell(4)!=null && !"".equals(row.getCell(4).getStringCellValue())){
                        pmcused.setOrgCode(row.getCell(4).getStringCellValue());
                    }
                    if(row.getCell(5)!=null && !"".equals(row.getCell(5).getStringCellValue())){
                        pmcused.setOrgName(row.getCell(5).getStringCellValue());
                    }
                    if(row.getCell(6)!=null && !"".equals(row.getCell(6).getStringCellValue())){
                        pmcused.setHospLv(row.getCell(6).getStringCellValue());
                    }
                    if(row.getCell(7)!=null && !"".equals(row.getCell(7).getStringCellValue())){
                        pmcused.setPmcNum(row.getCell(7).getStringCellValue());
                    }
                    if(row.getCell(8)!=null && !"".equals(row.getCell(8).getStringCellValue())){
                        pmcused.setTotal(row.getCell(8).getStringCellValue());
                    }


                    if((!"".equals(row.getCell(4).getStringCellValue())) && (!"".equals(row.getCell(5).getStringCellValue()))){
                        HashMap<String, Object> map = new HashMap<>();
                        map.put("id",pmcused.getId());
                        map.put("createTime",pmcused.getCreateTime());
                        map.put("startTime",pmcused.getStartTime());
                        map.put("endTime",pmcused.getEndTime());
                        map.put("orgCode",pmcused.getOrgCode());
                        map.put("orgName",pmcused.getOrgName());
                        map.put("hospLv",pmcused.getHospLv());
                        map.put("pmcNum",pmcused.getPmcNum());
                        map.put("total",pmcused.getTotal());

                        try {
                            //这里是操作数据库,根据实际需求进行取舍
                            pmcused.setFlag("0");
                            pmcDataImportMapper.importDataSource(pmcused);
                            //将读取的数据存入dataSource集合中,用于页面展示
                            dataSource.add(map);
                        }catch (Exception e){
                            throw new ServiceException(ServiceCode.ERR_INSERT,"插入数据失败!");
                        }

                    }
                }
            } catch (Exception e) {
                throw new ServiceException(ServiceCode.ERR_BAD_REQUEST,"网络异常,请联系管理员!");
            }
        }

        ajaxJson.setSuccess(true);
        ajaxJson.setMsg("导入成功,共记:"+rowNum+"条");
        ajaxJson.setObj(dataSource);
        return ajaxJson;
    }

注:本案例以以下表格进行设计,实际以自己需求设计

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值