2017-01-18 5 views
0

ExcelファイルにNullポインタ例外を取得しようとしているときに "sheet.createRow(1).createCell(5).setCellValue(" Pass ");"このエラーが来ている理由を得ていない:(Nullポインタ例外を取得する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

:。

を ワークブックには、シートが存在しないことを意味する
XSSFWorkbook workbook = new XSSFWorkbook(); 

。これはあなたのシートの変数がnullになることを意味します。私はそれが既存のファイルから読み込むように、ワークブックのコンストラクターにFileInputStreamのfileinpを渡したいと思いますか?

XSSFWorkbook workbook = new XSSFWorkbook(fileinp); 

それ以外の場合は、ブックに行を追加する前に、ブックにTestCaseNameという名前のシートを作成する必要があります。

+0

はい、私のために働いた。私はあなたの助けに感謝します –

0

たぶん、行は(1)nullである、あなたは、まずそれを作成しようとすることができますブックを作成するために、引数なしのコンストラクタを使用している

関連する問題