更改apachee中的getROW索引POI抛出NullPointerException

时间:2016-10-26 19:21:47

标签: java selenium-webdriver apache-poi

我正在尝试使用apachee POI写入Excel。当getrow索引为0时,它就像[getrow(o)]一样工作。但是除了零抛出nullpointer异常之外更改它。

package fairfoxchecking;

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

public class writingInExcel {
    public static void main(String []args) throws IOException {

    File src = new File("D:/Etl_Bug_reporting_Template.xlsx");
    FileInputStream fis = new FileInputStream(src);
    XSSFWorkbook wb = new XSSFWorkbook(fis);
    XSSFSheet sheet1 =wb.getSheetAt(0);

    sheet1.getRow(0).createCell(5).setCellValue("cheasdfasdfasck1");
    sheet1.getRow(1).createCell(5).setCellValue("cheasdfasdfasck1");

    FileOutputStream fout = new FileOutputStream(src);
    wb.write(fout);
    wb.close();
}

2 个答案:

答案 0 :(得分:1)

根据this,如果未定义,getRow可能会返回null。所以你可能必须在写作之前创建一个。

sheet1.createRow(index)

检查这个lib - 似乎很好。

答案 1 :(得分:1)

在创建单元格之前,必须确保创建行。

尝试类似的事情,

if(sheet1.getRow(rowIndex) == null)
      sheeet1.createRow(rowIndex)
sheet1.getRow(rowIndex).createCell(colIndex).setCellValue(stringVal);