我在写入Excel文件时遇到问题。我正在使用Apache POI在excel上编写。

我的代码是:

private void EscreverExcel(String Nome) throws FileNotFoundException, IOException{
    File src = new File("D:\\Work\\Fortune\\DadosCliente.xlsx");

    FileInputStream fist = new FileInputStream(src);
    XSSFWorkbook wb = new XSSFWorkbook(fist);
    XSSFSheet sheet = wb.getSheetAt(0);

    sheet.getRow(0).createCell(2).setCellValue(Nome);
    FileOutputStream fos = new FileOutputStream(src);
    wb.write(fos);
    wb.close();
}
public static void main(String[] args) throws IOException{
   Excel ex = new Excel();
   ex.EscreverExcel("Mário");
}


当我运行程序时,他们给了我这个:

Exception in thread "main" java.lang.NullPointerException

at fortunewheel.Excel.EscreverExcel(Excel.java:79)
at fortunewheel.Excel.main(Excel.java:87)


我做错了什么?你能帮我吗?

最佳答案

既然您说了,行号。下一行是79。

sheet.getRow(0).createCell(2).setCellValue(Nome);


我的猜测是sheet是空对象,或者sheet.getRow()返回空。我建议您检查它们两者,以免出现空指针异常。


  从XSSFSheet.getRow()的官方文档中:


getRow()方法返回逻辑行(从0开始)。如果您要求未定义的行,则会得到一个空值。也就是说,第4行代表纸张上的第五行。

参数:

rownum - row to get


返回值:

XSSFRow representing the rownumber or null if its not defined on the sheet


所以我的猜测是,getRow()在您的情况下返回null。

关于java - Netbeans-Java Excel NullPointerExcepetion,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42092682/

10-10 10:18