Java NullPointerException在不为NULL的情况下引发

Java NullPointerException在不为NULL的情况下引发,java,file-io,nullpointerexception,apache-poi,Java,File Io,Nullpointerexception,Apache Poi,尝试使用Apache POI更新excel单元格时引发NullPointerException。 我要更新的特定单元格有一些值,但由于异常而无法更新 String excelFileName = "D:\\TempLocation\\Marks.xlsx";//name of excel file String sheetName = "Sheet1";//name of sheet XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet =

尝试使用Apache POI更新excel单元格时引发NullPointerException。 我要更新的特定单元格有一些值,但由于异常而无法更新

String excelFileName = "D:\\TempLocation\\Marks.xlsx";//name of excel file
String sheetName = "Sheet1";//name of sheet
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.getSheet(sheetName) ;
System.out.println(regNo+ " " + cellNo);
Cell cellToUpdate = sheet.getRow(0).getCell(0);
cellToUpdate.setCellValue(mark);
FileOutputStream fileOut = new FileOutputStream(excelFileName);
//write this workbook to an Outputstream.
wb.write(fileOut);
fileOut.flush();
fileOut.close();
FileInputStream  fis = new FileInputStream(new File(excelFileName));
这是我的密码。在此行引发的异常:

Cell cellToUpdate = sheet.getRow(0).getCell(0);
FileInputStream  fis = new FileInputStream(new File(excelFileName));

包括这一行

FileInputStream  fis = new FileInputStream(new File(excelFileName));
以及这方面的变化

FileInputStream  fis = new FileInputStream(new File(excelFileName));
XSSFWorkbook wb = new XSSFWorkbook(fis);

让它发挥作用

有三个可能的原因。我建议你一步一步走。首先,
sheet
可能为空,第二,可能sheet没有行
0
,第三,可能没有单元格
0
可以打印
sheet.getRow(0)
,然后打印
sheet.getRow(0).getCell(0)
,因为您没有创建一个!在
wb.getSheet(sheetName)
之前使用
wb.createSheet()
,或者将文件传递到
wb
的构造函数中。您是否尝试使用调试器单步执行代码以查看值是什么?@dams您是对的。Sheet为null,因为我没有向wb.getSheet()传递任何参数;现在它通过后开始工作。
FileInputStream  fis = new FileInputStream(new File(excelFileName));