我正在使用OpenXML SDK阅读xlsx文件。读取共享字符串值时没有问题,但我不知道如何区分实际数字与日期,因为它们都具有null的DataType并且它们存储为数字。
使用DateTime.FromOADate()我可以将数字值转换为日期格式,但首先我需要确定单元格格式是否为日期,否则数字/货币格式的单元格值也会转换为日期。
我试过这篇文章中提到的解决方案 How to distinguish inline numbers from OLE Automation date numbers in OpenXML SpreadSheet?。 但它不适用于货币格式,数字格式(负数格式请参阅附带的屏幕截图)和一些自定义格式number and currency format screenshot。它会将货币和数字格式转换为日期
我正在寻找
将日期与所有其他数字格式区分开来的通用解决方案,以便所有格式(如数字,货币,科学)和自定义格式的数值都不会转换为日期
是否有按照Excel工作表格格式设置单元格值的通用方法。现在我们分别处理每个格式
答案 0 :(得分:1)
每个单元格有2个属性r(CellReference)和s(StyleIndex)
数字的StyleIndex为2,日期为3
33938