2017-05-09 9 views
0

私のスクリプトは、複数の列で同じ数のタブで2つのExcelファイル(xlsxを更新前と更新後の異なる間隔でWebアプリケーションからエクスポートしました)すべてが同じですが、値を比較する必要があります。私は4セットのためにそれをしたが、5セットで苦労している。ファイルを読み取れません。 1)サイズ2)シートを減らした3)データを削除したが使用していない。時には1:10のデバッグ中に読み込み中ですが、実行時にはNULLポインタの例外が表示されます。POIとJava for Seleniumを使用してExcelファイルを読み取ることができません

try { 
     // Open the Excel file 
     String FileNameforScriptsFilePath = "D:\\Functional Automation 
Data\\Pest WTO with change before.xlsx"; 
     FileInputStream FileNameforScriptsFile = new 
FileInputStream(FileNameforScriptsFilePath); 

     XSSFWorkbook DataCleanBefore = new 
XSSFWorkbook(FileNameforScriptsFile); 

//  File DataCleaningBeforeFile=new File("D:\\Functional Automation 
Data\\Pest RTO with change before.xlsx");//all are similar names 
//  OPCPackage PestWTOwithchangebeforepkg = 
OPCPackage.open(DataCleaningBeforeFile.getAbsolutePath()); 
//  XSSFWorkbook DataCleanBefore = new 
XSSFWorkbook(PestWTOwithchangebeforepkg); 

XSSFSheet BasicAddressDetailsBeforeSheet = 
DataCleanBefore.getSheet("Basic Address Details"); 

私はSXSSFSheetでも試していますが、上記の// OPCでも説明しました。助けてください、4日以来苦労しています。ここで

+0

こんにちは、あなたの変数のいずれかが宣言されていても初期化されていないときは、nullポインタを取得します。使用前に初期化されているかどうかにかかわらず、宣言された変数をすべてチェックしてください。 – ManishPrajapati

答えて

0

は、あなたの質問を解決する:

Excelシートの長い名前(それは簡単な例:「Input.xlsx」を保つ) を維持する溶液 -

  1. 避けに関するいくつかの単語
  2. ファイル名に空白を入れない方が良い場合は、Excelファイルのディレクトリ名&のシート名を使用することをお勧めします。
  3. Excelファイル名の末尾に複数の拡張子(例: "Input.xlsx.xlsx")が指定されていないことを確認してください。
  4. タスクを実行した後は常にオブジェクトを閉じてください。
  5. try{}ブロックを開始するときは、正しく閉じます。
  6. Try{}ブロックの後に少なくともcatch{}ブロックが続く必要があります。
  7. Base Exceptionにキャッチしてください。
  8. コードをきれいにして、不要なコードを削除します。
  9. excelファイル "D:\ Functional Automation Data Pest WTO with change before.xlsx"を開いて不要なコードをすべて削除して作業しています。 "Basic Address Details"シートを読み取り、その行を数えます。 。

     try { 
          // Open the Excel file 
          File FileNameforScriptsFilePath = new File(
            "D:\\Functional Automation Data Pest WTO with change before.xlsx"); 
          FileInputStream FileNameforScriptsFile = new FileInputStream(FileNameforScriptsFilePath); 
          XSSFWorkbook DataCleanBefore = new XSSFWorkbook(FileNameforScriptsFile); 
          XSSFSheet BasicAddressDetailsBeforeSheet = DataCleanBefore.getSheet("Basic Address Details"); 
          int rowCount = BasicAddressDetailsBeforeSheet.getLastRowNum(); 
          System.out.println("Total Rows is : " + (rowCount + 1)); 
          DataCleanBefore.close(); 
         } catch (Exception e) { 
          System.out.println(e); 
    

これがあなたを助けている場合、私に教えてください。

関連する問題