2016-08-24 7 views
1

Excelファイルで特定の日付のセル参照を検索しようとしています。 "Date"ヘッダーがA1にあり、日付がB1、C1などの同じ行に含まれるようにExcelが設定されています。Java Apache POI - イテレータを作成して日付を検索する

これらの日付を経て比較するイテレータを作成しようとしました入力日付。 簡潔にするために、以下のコードをいくつか省略しました。

public static void main(String[] args) throws IOException, ParseException { 
    SimpleDateFormat formatter ; 
     formatter = new SimpleDateFormat("MM/dd/yyyy"); 
     Date date = formatter.parse(args[0]); 

    // ............ 

    // iterator to find date 
    int dateRef = 0; //logs column of date 
    Date tempDate = null; 
    // while loop to check the date contents of each cell 
    while (dateRef < 1000) { // random number inserted 
     dateRef++; 
     tempDate = cell.getDateCellValue(); 
     if (date == tempDate) { 
      break; //beaks if contents are equal 
     } 
     cell = results.getRow(0).getCell(dateRef); // else continue and iterate one cell 
     } 
} 

これを実行すると、イテレータは列1000まで正しく移動します。これを印刷文でチェックしました。セルが正しい日付に着陸しているにもかかわらず、入力日付とセル日付の値が同じであると認識しないため、ブレークしません。

私はこれが最も効果的な方法ではないかもしれないことを知っています。それ以上の提案があれば教えてください。ありがとうございました!

答えて

4

この場合、==演算子は使用しないでください。適切な日付を見つけるために、equalsまたはcompareToをお試しください。

質問:What is the difference between == vs equals() in Java?

+0

これは本当にうまくいった。私はApacheとjavaには一般的ではないので、compareTo()はわかりませんでした。ご協力ありがとうございました。 –

関連する問題