SpringMVC上传Excel文件

利用POI进行Excel的文件解析,maven依赖如下


   org.apache.poi
   poi
   ${apache.poi.version}


    org.apache.poi
    poi-ooxml
    ${apache.poi.ooxml.version}

配置SpringMvc文件上传解析器

    
        
        
        
        
        
        
        
        
    

写上传文件的Controller

public BaseResponse upload(MultipartFile file) throws Exception {
        //检验忽略
         ...

        //获取文件后缀名
        String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(Constant.DOT) + 1);
        Workbook wb = null;
        //对于2003的版本,用HSSFWorkbook处理
        if (Constant.EXCEL_2003_SUFFIX.equals(suffix)) {
            wb = new HSSFWorkbook(file.getInputStream());
        //对于2007以及后续版本,用XSSFWorkbook进行处理
        } else if (Constant.EXCEL_2007_SUFFIX.equals(suffix)) {
            wb = new XSSFWorkbook(file.getInputStream());
        } else {
            return buildResponse(CommonCodeEnum.FILE_SUFFIX_NO_VALID, null);
        }

        List ids = Lists.newArrayList();
        try {
            //获取第一个sheet,可以利用循环获取每个sheet的内容
            Sheet sheet = wb.getSheetAt(0); 

            //第一行是标题,跳过
            for (int i = 1; i < sheet.getLastRowNum() + 1; i++) {
                Row row = sheet.getRow(i);
                if (row != null) {
                    //获取第一列的内容
                    Cell cell = row.getCell(0);
                    Long id = (long) cell.getNumericCellValue();//数字类型
                    id.add(poiId);
                }
            }
        } catch (Exception e) {
            return buildResponse(CommonCodeEnum.FILE_CONTENT_NO_VALID, null);
        }

        //后续处理忽略
        ...
    }

可以利用postman进行测试

SpringMVC上传Excel文件_第1张图片
image.png

你可能感兴趣的:(SpringMVC上传Excel文件)