使用POI API从电子表格读取时间值

使用POI API从电子表格读取时间值,第1张

使用POI API从电子表格读取时间

Excel中日期和时间的快速入门。由于创建文件格式时回想起很多原因,但现在看起来有些混乱,Excel没有日期或时间或日期时间类型。相反,它具有数字和特殊的格式规则。

怎么看?在Excel单元格中键入10.5,然后将其格式化为日期+时间。您将在1900年1月的某个日期中午。

因此,当您询问POI单元格是否为日期格式时,没有简单的标记/类型可以检查。取而代之的是,POI所能做的就是读取应用于单元格的格式字符串,并查看它是否看起来像日期一样可疑。

奖励标记-尝试存储1900年2月28日,然后添加一个-Excel忠实再现1900年leap年附近的Lotus 123错误…

通常,

DateUtil.isCellDateFormatted(cell)
对于“日期”单元格,“时间”单元格和“日期时间”单元格将返回true。但是,有时您会得到一种非常奇怪的格式,Excel知道该格式是日期或时间,但POI不能视为一个日期或时间。对于这些,您仍然可以要求输入单元格值作为日期,POI会对其进行转换。

因此,在您的情况下,如果POI表示日期已格式化,则将值作为日期获取。现在,查看格式字符串。如果要查找日期,请格式化为日期。寻找日期和时间?格式化为您的首选日期和时间。只有时间?格式化为时间?时区?你一定是在笑…

哦,只要您不使用1900年左右的真实日期,就可以说

DateUtil.isCellDateFormatted(cell)
+值<100->大概只是一个时间(如果是经过的时间,则为>
1)。如果您的数字是整数,则可能只是一个日期(但可能是午夜)。如果它是非整数(ish-请记住excel使用浮点数),则可能有时间成分。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5490678.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存