2017-01-18 6 views
0

При попытке записать в файл Excel получение нулевого указателя Исключение из строки «sheet.createRow (1) .createCell (5) .setCellValue (« Pass »); Не клеится, почему приходит эта ошибка :(При записи в файл Excel получение нулевого указателя Исключение

package com.qtpselenium.Test; 

import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 

import org.apache.poi.xssf.usermodel.XSSFSheet; 
import org.apache.poi.xssf.usermodel.XSSFWorkbook; 

import com.qtpselenium.util.Xls_Reader; 

public class ReturnTestCaseResult { 

    public static void main(String[] args) { 

     String path =System.getProperty("user.dir") + "\\src\\com\\qtpselenium\\xls\\suiteA.xlsx"; 
     /* Xls_Reader xlsr = new Xls_Reader(System.getProperty("user.dir") + "\\src\\com\\qtpselenium\\xls\\suiteA.xlsx"); 
      ReportDataSetResult(xlsr, "TestCaseA1", 3, "Pass" , path);*/ 

     ReportDataSetResult("TestCaseA1", path); 
    } 


    public static void ReportDataSetResult(String TestCaseName , String path){ 


     System.out.println(TestCaseName +"----"+ path); 
      try { 
      FileInputStream fileinp = new FileInputStream(path); 
       XSSFWorkbook workbook = new XSSFWorkbook(); 

      XSSFSheet sheet = workbook.getSheet(TestCaseName); 

       sheet.createRow(1).createCell(5).setCellValue("Pass"); 

       FileOutputStream fileout = new FileOutputStream(path); 
       workbook.write(fileout); 
       fileout.close(); 



     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 




    } 

} 

ответ

1

Вы использовали конструктор без ARG для создания книги:.

XSSFWorkbook workbook = new XSSFWorkbook(); 

что означает, что нет листов в книге. Это означает, что переменная лист будет нулевым. Я думаю, что вы хотите передать FileInputStream fileinp в конструктор рабочей книги, так что он читает из существующего файла?

XSSFWorkbook workbook = new XSSFWorkbook(fileinp); 

В противном случае вам нужно будет создать лист с именем TestCaseName в рабочей книге, прежде чем вы сможете начать добавлять к нему строки.

+0

Да, это сработало для меня. я ценю вашу помощь –

0

Может быть, ряд (1) имеет нулевое значение, то можно попробовать создать его первый