java - 无法将消息写入控制台中的 Excel 文件,显示 java.lang.NullPointerException

标签 java selenium file apache-poi

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);。所以rnull。这是可能的,因为 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/

相关文章:

java - Magnolia 6.1.1 分析器(小写字母和重音符号)

java - Java中不使用java.net从URL获取域名

java - Struts2 排除模式 - 它到底是如何工作的?

java - Files.write() 无法正常工作,而 BufferedWriter 似乎工作正常

具有非最终函数参数的 Java Lambda 表达式

Python Selenium Javascript链接点击无法执行

java - 能够安装亚马逊应用程序但无法打开它

java - appium , selenium.SessionNotCreatedException 错误

python - 将 dict 写入文件,每个键/值对位于单独的行上

java - 为什么我的输出文件是空的?