我在写入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/