因为Excel本身有格式类型,当它以数字格式存的时候我们在使用POI读取的时候就需要调用与格式类型相匹配的方法
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sheet = wb.getSheetAt(0);
int rows = sheet.getPhysicalNumberOfRows();
XSSFRow row = sheet.getRow(0);
row.getCell(0).getStringCellValue(); //当是数字时候调用该方法读值会出错
row.getCell(0).getNumericCellValue(); //这时必须针对该行调用此方法
为了避免以上麻烦,我们可以强制地将Excel的数据类型进行强制转换后再读取
cell.setCellType(Cell.CELL_TYPE_STRING);
于是就可以省去针对每一列的不同类型需要调用不同方法的麻烦:
//首先强制设置成string类型
row.getCell(0).setCellType(XSSFCell.CELL_TYPE_STRING);
//再读取
row.getCell(0).getStringCellValue();