【发布时间】:2017-02-22 11:55:57
【问题描述】:
我正忙于开发一个从 MS Excel (2016) 文件中导入数据的组件。 该组件使用 MS OpenXML SDK2.5 库。 MS Excel 的最终用户安装基于荷兰国家/地区设置。 除其他外,该文件包含一个包含财务数据(数字)的列。此列的位置事先不知道。
为了确定一个单元格是否包含数字数据,我评估了属性 Cell.DataType(CellValues 类型,它是一个枚举)。 起初,该属性似乎是确定这一点的完美候选者。 CellValues 的可能值为: 布尔值、数字、错误、共享字符串、字符串、内联字符串或日期。所以我希望 Cell.DataType 设置为 CellValues.Number。 经过一些调试,我发现当单元格包含数字数据时,Cell.DataType 为空。
在互联网上搜索以查找解释时,我发现了以下 MSDN 文章: https://msdn.microsoft.com/en-us/library/office/hh298534.aspx
这篇文章准确地描述了我在调试过程中发现的内容:
Cell 类型提供了一个 DataType 属性,该属性指示单元格内数据的类型。对于数字和日期类型,DataType 属性的值为 null。
有人知道为什么 Cell.DataType 没有分别用 CellValues.Number 或 CellValues.Date 初始化吗?
确定单元格是否包含数值的最佳方法是什么?
【问题讨论】:
标签: c# excel openxml-sdk