Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XSSF POI is cell date

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.

like image 510
Zemzela Avatar asked Jul 13 '11 10:07

Zemzela


2 Answers

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.

like image 52
Gagravarr Avatar answered Oct 01 '22 12:10

Gagravarr


cell.getCellTypeEnum() == CellType.NUMERIC && DateUtil.isCellDateFormatted(cell)

like image 30
Evan Thomas Avatar answered Oct 01 '22 12:10

Evan Thomas