2011-07-13 7 views
8

Czy istnieje sposób określenia, czy komórka jest datą? Wiem o style.getDataFormatString(), ale to mi nie pomoże, , ponieważ nie mogę stwierdzić, czy formowanie jest datą czy nie.XSSF POI jest datą komórki

Odpowiedz

12

Jeśli korzystasz z UserModel XSSF, chcesz DateUtil.isCellDateFormatted(Cell) - to zwróci wartość boolowską informującą, czy ciąg znaków dla komórki reprezentuje dane, czy nie.

Jeśli jesteś w niskiej zawartości XML, potrzebujesz zamiast tego DateUtil.isADateFormat(int,String). Identyfikator stylu pochodzi z xml komórki. Ciąg stylu, który musisz wydostać ze stołu stylów, który jest inną częścią pakietu. Są pomocnicy do ładowania, który prawdopodobnie będzie wyglądał na na przykład wykonania drugiego - formatuje komórki z parsowania zdarzeń.

+0

Jestem rzeczywiście kopiuj/wklej http://mail-archives.apache.org/mod_mbox/poi-user/ 200905.mbox/%[email protected]%3E i spróbuj go zmodyfikować. Tak, widziałem taką możliwość, ale nie wiem, jak odzyskać Cell. – Zemzela

+0

Czy używasz modelu użytkownika XSSF lub tworzysz surowe pliki XML z modelu zdarzeń? – Gagravarr

+0

Druga odpowiedź :(. – Zemzela

0

cell.getCellTypeEnum() == CellType.NUMERIC & & DateUtil.isCellDateFormatted (komórka)

+1

Dlaczego sprawdzasz, czy CellType ma wartość numeryczną, jeśli pytanie jest powiązane z komórką Date? – araknoid

+0

, gdy używasz DateUtil.isCellDateFormatted (komórka), ale CellType to String, to pojawi się "java.lang.IllegalStateException: Nie można uzyskać wartości NUMERYCZNEJ z komórki STRING" @araknoid – laohans

+0

Powinieneś dodać te szczegóły do ​​odpowiedzi i wyjaśnić to nieco, ponieważ tak jak jest napisane, to nie jest to odpowiedź samozrozumiała. – araknoid

Powiązane problemy