使用OpenXML从Excel文件中读取date

我正在C库中使用OpenXML来读取excel文件。 我可以阅读一个单元格文本和数字很好,但是当谈到date有一个问题。 有单元格的types“date”,但显然Excel 2007不会保存该types的date,所以我不能告诉我正在阅读的值是否是一个date,而是它似乎使用样式。

我怎么能检测到它是一个date,并返回它的string表示(例如:29-12-2010)?

Excel将date存储为浮点值…整数部分是从1/1/1900(或1/1/1904取决于正在使用哪个日历)以来的天数,小数部分是一天中的比例(即时间部分)…… 1900年被认为是闰年这一事实让人稍微有些尴尬。

数字与数字唯一区分的是数字格式掩码。 如果您可以阅读格式掩码,则可以使用该格式将该值标识为date而不是数字…然后从基准date计算date值/格式。