|  |  | 
 |  |  |      * 标题行号 | 
 |  |  |      */ | 
 |  |  |     private int headerNum; | 
 |  |  |     /** | 
 |  |  |      * 标题行号 | 
 |  |  |      */ | 
 |  |  |     private CellType changeType; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 构造函数 | 
 |  |  | 
 |  |  |         throws InvalidFormatException, IOException { | 
 |  |  |         this(multipartFile.getOriginalFilename(), multipartFile.getInputStream(), headerNum, sheetIndex); | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 构造函数 (重要) | 
 |  |  |      * @param--file 导入文件对象 | 
 |  |  |      * @param headerNum 标题行号,数据行号=标题行号+1 | 
 |  |  |      * @param sheetIndex 工作表编号 | 
 |  |  |      * @throws InvalidFormatException | 
 |  |  |      * @throws IOException | 
 |  |  |      */ | 
 |  |  |     public ExcelImporter(MultipartFile multipartFile, int headerNum, int sheetIndex, CellType cellType) | 
 |  |  |         throws InvalidFormatException, IOException { | 
 |  |  |         this(multipartFile.getOriginalFilename(), multipartFile.getInputStream(), headerNum, sheetIndex,cellType); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 构造函数 () | 
 |  |  | 
 |  |  |         this.headerNum = headerNum; | 
 |  |  |         log.debug("Initialize success."); | 
 |  |  |     } | 
 |  |  |     public ExcelImporter(String fileName, InputStream in, int headerNum, int sheetIndex,CellType cellType) | 
 |  |  |         throws InvalidFormatException, IOException { | 
 |  |  |         if (StringUtils.isBlank(fileName)){ | 
 |  |  |             throw new RuntimeException("导入文档为空!"); | 
 |  |  |         }else if(fileName.toLowerCase().endsWith("xls")){ | 
 |  |  |             this.wb = new HSSFWorkbook(in); | 
 |  |  |         }else if(fileName.toLowerCase().endsWith("xlsx")){ | 
 |  |  |             this.wb = new XSSFWorkbook(in); | 
 |  |  |         }else{ | 
 |  |  |             throw new RuntimeException("文档格式不正确!"); | 
 |  |  |         } | 
 |  |  |         if (this.wb.getNumberOfSheets()<sheetIndex){ | 
 |  |  |             throw new RuntimeException("文档中没有工作表!"); | 
 |  |  |         } | 
 |  |  |         this.sheet = this.wb.getSheetAt(sheetIndex); | 
 |  |  |         this.headerNum = headerNum; | 
 |  |  |         this.changeType = cellType; | 
 |  |  |         log.debug("Initialize success."); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取行对象 | 
 |  |  | 
 |  |  |             Cell cell = row.getCell(column); | 
 |  |  |             if (cell != null){ | 
 |  |  |                 if (cell.getCellType() == CellType.NUMERIC){ | 
 |  |  |                     val = cell.getNumericCellValue(); | 
 |  |  |                     cell.setCellType(CellType.STRING); // 确保单元格类型为字符串 | 
 |  |  |                     val = cell.getStringCellValue(); | 
 |  |  |                 }else if (cell.getCellType() == CellType.STRING){ | 
 |  |  |                     val = cell.getStringCellValue(); | 
 |  |  |                 }else if (cell.getCellType() == CellType.FORMULA){ | 
 |  |  | 
 |  |  |                             }else{ | 
 |  |  |                                 val = String.valueOf(val.toString()).trim(); | 
 |  |  |                             } | 
 |  |  |                         }else if (valType == Integer.class){ | 
 |  |  |                         } | 
 |  |  |                         else if (valType == Integer.class){ | 
 |  |  |                             val = Double.valueOf(val.toString()).intValue(); | 
 |  |  |                         }else if (valType == Long.class){ | 
 |  |  |                             val = Double.valueOf(val.toString()).longValue(); |