使用OpenXML从Excel文件中读取日期

时间:2010-12-29 10:22:48

标签: c# excel openxml spreadsheet openxml-sdk

我正在创建一个在C#中使用OpenXML来读取excel文件的库。我可以读取细胞文本和数字,但是当涉及到日期时,就会出现问题。 单元格的类型为“日期”,但显然Excel 2007不保存该类型的日期,因此我无法判断我正在阅读的值是否为日期,而是显示使用样式。

我如何检测它是否是日期并返回它的字符串表示(例如:29-12-2010)?

1 个答案:

答案 0 :(得分:4)

Excel将日期存储为浮点值...整数部分是自19/1年1月1日以来的天数(或1/1/1904,具体取决于使用的日历),小数部分是比例一天(即时间部分)...由于1900年被认为是闰年这一事实略显尴尬。

区分数据和数字的唯一方法是数字格式掩码。如果您可以读取格式掩码,则可以使用它来将值标识为日期而不是数字...然后从基准日期计算日期值/格式。