2016-09-23 4 views
0

Ich bin völlig neu in Apache POI und schreibe ein einfaches Programm, um die Daten zu behandeln. Ich lade ein Excel-Blatt mit Daten in verschiedenen Spalten. Diese Daten können verschiedene Formate und in verschiedenen Spalten haben. Gemäß dem Code, den ich geschrieben habe, liest er den Wert korrekt, aber statt als Datum zu verwenden, weist er ihn als String zu.Konvertieren Zeichenfolge in Daten Apache POI

Auch das zweite Problem, dem ich gegenüberstehe, ist zu erkennen, ob der eingehende Wert tatsächlich ein Datum oder eine Dezimalzahl oder einfach eine Zeichenkette ist.

Was ich geschrieben habe, um den Wert einer Reihe zu bekommen ist:

Cell aCell = row.getCell(cell+i); 
if(i==4 && HSSFDateUtil.isCellDateFormatted(aCell)){ 
       System.out.println("The cell contains a date value: " + aCell.getDateCellValue()); 
      } 

Dies alles zu geben, schlägt fehl. Ausnahme ist IllegalStateArgument. Was kann der Grund sein? Ich habe viel gegooglet, aber für diesen Fall konnte ich keine Lösung finden.

Vielen Dank im Voraus!

Antwort

0

Diese Links können Ihnen helfen: -

Sie den Wert erfolgreich gelesen haben, versuchen Sie diese Links, um die Datumsfelder zu analysieren.

Set Date format using Apache POI

POI - How do I set cell value to Date and apply default Excel date format?

Sie können für verschiedene Datumsformate überprüfen.

+0

Danke für die Verknüpfung. Versuchte meine Hände darauf. Ich bekomme den richtigen Wert. Aber der Zelltyp ist auf 1 gesetzt. Das heißt, es liest es als String und nicht als Numerischer Typ. – abhi

+0

Können Sie die Zeichenfolge jetzt bis jetzt parsen? Könnten Sie bitte Ihren Kommentar ein wenig ausarbeiten? –

+0

Nein. Ich kann das immer noch nicht machen. Das Szenario ist: in der Excel-Datei, wenn ich das Datumsformat wie dd.MM.yyyy es liest, gibt es den Zelltyp als 0 (CELL_TYPE_NUMERIC). Aber, wenn in der Excel-Datei gebe ich das Datum im Format als MM.dd.yyyy dann gibt es den Zelltyp als 1 (CELL_TYPE_STRING). Dieses Problem muss ich beheben, was ich im Moment nicht herausfinden kann. Wenn der Zelltyp 0 ist, wird es für mich einfacher, die verschiedenen Datumsformate zu handhaben. Gibt es eine Möglichkeit, das Szenario mit Apache POI Framework zu bewältigen? – abhi