2014-09-24 108 views
0

我正在尝试使用Apache POI更新java中的.xlsx文件。Apache POI更新excell Java

这是我的代码:

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import org.apache.poi.xssf.usermodel.XSSFCell; 
import org.apache.poi.xssf.usermodel.XSSFRow; 
import org.apache.poi.xssf.usermodel.XSSFSheet; 
import org.apache.poi.xssf.usermodel.XSSFWorkbook; 

public class updateResults { 


    void updateResults(String path) throws FileNotFoundException, IOException{ 
    FileInputStream fis = new FileInputStream(new File(path)); 
    XSSFWorkbook workbook = new XSSFWorkbook (fis); 
    XSSFSheet sheet = workbook.getSheetAt(0); 
    XSSFRow row1 = sheet.getRow(1); 
    XSSFCell cell1 = row1.getCell(1); 
    cell1.setCellValue("Mahesh"); 
    XSSFRow row2 = sheet.getRow(2); 
    XSSFCell cell2 = row2.getCell(1); 
    cell2.setCellValue("Ramesh"); 
    fis.close(); 
    FileOutputStream fos =new FileOutputStream(new File(path)); 
    workbook.write(fos); 
    fos.close(); 
    System.out.println("Done"); 

} 
} 

的问题是在我行“32”,这是XSSFCell cell2 = row2.getCell(1);

任何人ahve任何想法,为什么会出现这种情况得到一个空指针异常?

+0

您的工作表有多少行? – Jens 2014-09-24 09:10:23

+1

将它放在一个循环中,限制条件为您期望的行数,并在分别调用getCell或getValue之前对行和单元格进行空值检查。 – Avik 2014-09-24 09:14:48

+0

谢谢:)最有帮助的问题曾经:) @Jens – BetterNerf 2014-09-24 09:15:30

回答

0

NullPointerException当应用程序尝试使用具有null值的对象引用时引发。其中包括:在null reference引用的对象上调用实例方法。 可能是你没有价值在你的第2行如此nullpointerexception。

+0

谢谢。我现在有另一个问题。如果我改变宽度或高度的细胞或行manualy通过excell,然后尝试发送更新我得到异常“线程中的异常”AWT-EventQueue-0“java.lang.NullPointerException” – BetterNerf 2014-09-24 11:11:45

+1

新问题...新问题亲爱的.. 。:) – Sankumarsingh 2014-09-24 11:12:25