java我在访问具有值的单元格时遇到空指针异常?
我正在使用ApachePOI库从EXCEL工作表中获取数据。我已经附上了突出显示黄色部分的EXCEL表。我试图从EXCEL工作表中提取所有数据,但没有从突出显示的部分获取数据。当试图访问这些单元格时,它会出现空指针异常
样本文件: Document
示例代码
FileInputStream inputStream=新的FileInputStream(文件)
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet firstSheet = workbook.getSheetAt(0);
Iterator<Row> iterator = firstSheet.iterator();
while (iterator.hasNext()) {
Row nextRow = iterator.next();
Iterator<Cell> cellIterator = nextRow.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
System.out.print(cell.getStringCellValue());
System.out.print(",");
}
System.out.println();
}
workbook.close();
inputStream.close();
当您运行上述程序时,您将得到一些未从excel表中提取的字段(突出显示的部分)。当您显式地尝试访问这些单元格时,将出现空指针异常
# 1 楼答案
无法复制这种行为。如果
System.out.print(cell.getStringCellValue());
抛出一个NPE,那么cell
必须是null
。但是cell
根据您的代码不能是null
,因为Row.cellIterator
只在存在且不存在的单元格上迭代已下载
SAMPLE.xlsx
并使用Busy Developers' Guide - Getting the cell contents中的代码。此代码读取所有单元格时不会出现问题部分结果(您的第一个黄色范围):