XSSF POI 是单元格日期
有没有办法确定单元格是否是日期? 我知道 style.getDataFormatString() 但这对我没有帮助, 因为我无法确定格式化是否适用于日期。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用的是 XSSF UserModel,那么您需要 DateUtil.isCellDateFormatted(Cell) - 这将返回一个布尔值,告诉您单元格的格式字符串是否表示是否有数据。
如果您对低级 XML 内容不太了解,则需要 DateUtil.isADateFormat(int,String) 代替。样式 ID 来自单元格 xml。您必须从样式表中获取样式字符串,它是不同的包部分。有一些帮助程序可以加载它,但
您可能想看看 XSSFExcelExtractorDecorator 来自 Tika 作为执行后者的示例 - 它确实通过事件解析对单元格进行格式化。
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.
cell.getCellTypeEnum() == CellType.NUMERIC && DateUtil.isCellDateFormatted(单元格)
cell.getCellTypeEnum() == CellType.NUMERIC && DateUtil.isCellDateFormatted(cell)