在使用POI导入数据的时候,发现有的时候,或者说有的excel文件,导入过程会报空指针,后来发现获取到对应的行的单元格为null导致的。
代码是这样的:`public Map<String,Object> readExcel(MultipartFile file){
Workbook workBook = null;
InputStream is = file.getInputStream();
try {
if(file.getOriginalFilename().endsWith("xls")){
workBook =new HSSFWorkbook(is);
}else if(file.getOriginalFilename().endsWith("xlsx")){
workBook =new XSSFWorkBook(is);
}
Sheet sheet1 = workBook.getSheetAt(0);
/**
* 代码中是在for循环之前获取某一行是否为无效数据行,判断是否为空。
* 然后发现有一些excel导入之后,就在下面的代码报了空指针,实际是不为空的行。
*/
Cell cell = sheet1.getRow(2).getCell(0);
//下面是业务代码...
} catch (Exception e) {
}
}`
空指针是在哪里报出来的?如果是取值的话可以试一下String value = sheet.getCell(colIndex, rowIndex).getContents()来取值,excel中的空取出来就是空串""。