由于XLSX文件可能包含数百万行数据,因此我决定使用POI事件模型,并从这里(ExampleEventUserModel)进行了参考。但是,在解析日期格式单元格时遇到了一些问题。
例如,在Excel中,我有一个日期为2011年10月1日的单元格A15,但XML中却显示为:
<c r="A15" s="11"><v>40817</v></c>
它不是日期格式,甚至不是毫秒格式。
如何解析事件模型的日期?
最好的问候。
由于XLSX文件可能包含数百万行数据,因此我决定使用POI事件模型,并从这里(ExampleEventUserModel)进行了参考。但是,在解析日期格式单元格时遇到了一些问题。
例如,在Excel中,我有一个日期为2011年10月1日的单元格A15,但XML中却显示为:
<c r="A15" s="11"><v>40817</v></c>
它不是日期格式,甚至不是毫秒格式。
如何解析事件模型的日期?
最好的问候。
Excel将日期存储为距离一个固定起始点的天数(以及天的小数部分)的浮点数。值40817
是从该起始点到2011年10月1日的天数。
POI的HSSFCell
有一个getDateCellValue()
方法,它返回一个Java Date
对象,并且可以实现您想要的功能。
s
单元格属性引用)。styles.xml
中引用样式xf
的numFmtId
属性,并尝试确定该格式是否为日期格式。为此,您需要应用一些启发式方法。t
类型属性定义了d
日期值,但这仅用于ISO 8601日期,实际上并不由Excel生成。(更新:在Excel 2013中的严格模式下现在使用此日期格式)。
s=
属性是一个样式引用。请参见 https://dev59.com/EnA75IYBdhLWcg3wsrWD - Jim Garrison