XSSF POI is cell date
Solution 1
If you're using the XSSF UserModel, then you want DateUtil.isCellDateFormatted(Cell) - this will return a boolean telling you if the format string for the cell represents a data or not.
If you're down at the low level XML stuff, you need DateUtil.isADateFormat(int,String) instead. The style ID comes from the cell xml. The style string you'll have to get out of the styles table, which is a different Package Part. There are helpers for loading that though
You probably want to look at XSSFExcelExtractorDecorator from Tika for an example of doing the latter - it does formatting of cells from an event parsing.
Solution 2
cell.getCellTypeEnum() == CellType.NUMERIC && DateUtil.isCellDateFormatted(cell)
Related videos on Youtube
Zemzela
Updated on June 08, 2022Comments
-
Zemzela about 2 years
Is there a way to determine if cell is a date? I know about style.getDataFormatString() but that doesn't help me, because I can't determine if is formating is for date or not.
-
Zemzela almost 13 yearsI'm actually copy/paste mail-archives.apache.org/mod_mbox/poi-user/200905.mbox/… and try to modify it. Yes I did see that possibility but don't know how to retrieve Cell.
-
Gagravarr almost 13 yearsAre you using XSSF usermodel, or doing event model raw XML stuff?
-
araknoid almost 7 yearsWhy are you checking if the CellType is Numeric if the question is related to Date cell?
-
Evan Thomas almost 7 yearswhen you use DateUtil.isCellDateFormatted(cell), but the CellType is String, it will appear "java.lang.IllegalStateException: Cannot get a NUMERIC value from a STRING cell" @araknoid
-
araknoid almost 7 yearsYou should add this details to the answer and explain it a bit because as it is written, It's not a self-explaining answer