我试图从SharpZipLib中读取.xlsx文件中的数据以解压缩(在内存中)并读取内部xml文件。一切都很好,但承认日期 - 他们存储在julean格式,我需要以某种方式识别,如果一个数字是一个日期或只有一个数字。在另一个主题(不幸的是它死了,我需要快速回答)我知道一些事情从马克贝克,但它仍然是不够的...从OpenXml Excel文件中读取日期
“Excel存储日期作为一个浮点值...整数部分是自1/1/1900(或1/1/1904,取决于使用哪个日历)以来的天数,小数部分是一天中的比例(即时间部分)......稍微有些尴尬1900年被认为是一个闰年
唯一区别数据和数字的是数字格式掩码如果你可以读取格式掩码,你可以使用它来标识值作为日期而不是数字......然后从基准日期计算日期值/格式。“
“但不属性‘S’的日期始终的值‘1’,我知道它定义的风格,但也许;?)”
在S属性引用style.xml中的xf条目,并不总是日期条目1 ......这一切都取决于工作簿中使用了多少种不同的样式。 xf样式依次引用数字格式掩码。要识别包含日期的单元格,您需要执行样式xf - > numberformat查找,然后确定该numberformat掩码是否是日期/时间numberformat掩码(而不是例如百分比或会计号码格式掩码)
“还有一个问题 - 我现在在看style.xml的内容和我看到类似元素的部分:” < XF numFmtId =“14” ...... applyNumberFormat =“1”/>” “< xf numFmtId =”1“... applyNumberFormat =”1“/ >”等,但没有<numFmts> section ...有没有任何“标准”格式?或者我只是缺少什么?
有人能帮我吗?提前致谢。
这里的日期格式ID列表http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.NumberingFormat(v=office.14).aspx的[ – 2014-05-30 11:13:33
可能重复什么指示Office Open XML Cell包含日期/时间值?](http://stackoverflow.com/questions/4730152/what-indicates-an-office-open-xml-cell-contains-a-date-time-value) – MikeTeeVee 2015-02-16 23:35:37