public void write(int row1, int cell1, String message, String Sheet1) 抛出 Throwable {
String path = ".\\resources\\APItestdata.xlsx";
FileInputStream fis = new FileInputStream(path);
//File fis=new File(path);
Workbook wb = WorkbookFactory.create(fis);
Sheet sh = wb.getSheet(sheet1);
Row r = sh.getRow(row1);
Cell c = r.createCell(cell1);
c.setCellValue(message);
FileOutputStream fos = new FileOutputStream(path);
wb.write(fos);
wb.close();
}
最佳答案
堆栈跟踪告诉您哪个代码行引发了NullPointerException
。那么ExcelLibrary.java:45
是什么代码行,ExcelLibrary.java中的代码行45?
我怀疑它是Cell c = r.createCell(cell1);
。所以r
是null
。这是可能的,因为 Sheet.getRow返回表示行号的行,如果未在工作表上定义,则返回 null。
所以做一些空检查:
...
Sheet sh = wb.getSheet("sheet1");
if (sh == null) sh = wb.createSheet("sheet1");
Row r = sh.getRow(row1);
if (r == null) r = sh.createRow(row1);
Cell c = r.createCell(cell1);
c.setCellValue(message);
...
关于java - 无法将消息写入控制台中的 Excel 文件,显示 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60344498/