Java Apache POI-Création d'un itérateur pour trouver une date


J'essaie de trouver la référence de cellule pour une date spécifique dans un fichier Excel. Excel est configuré de sorte que l'en-tête "Date" soit dans A1 et que les dates soient incluses sur la même ligne dans B1, C1, etc.

J'ai tenté de créer un itérateur pour parcourir ces dates et les comparer à une date d'entrée. J'ai omis un peu de code ci-dessous pour plus de concision.

   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
        }
}

Lorsque je lance ceci, l'itérateur continue jusqu'à la colonne 1000. J'ai vérifié cela avec des déclarations d'impression. Même si l' la cellule atterrit à la date correcte, elle ne reconnaît pas la date d'entrée et la valeur de la date de la cellule comme étant identiques et ne se casse donc pas.

Je sais que ce n'est peut-être pas la façon la plus efficace de faire les choses, donc si vous avez plus de suggestions, faites-le moi savoir à leur sujet. Merci!!!!

Author: Vladimir Vagaytsev, 2016-08-24

1 answers

Vous ne devez pas utiliser l'opérateur == dans ce cas. Je voudrais essayer avec equals ou compareTo dans votre cas, afin de trouver la bonne date.

Voir la Question: Quelle est la différence entre == vs equals() en Java?

 4
Author: Jorge_B, 2017-05-23 12:15:00