与C#相比,Excel有更宽松的数据输入方法.例如,数值总是加倍.如果你使用Value范围对象的属性(get_Value()在interop中,如果我没记错),Excel可能会返回一个(盒装)decimal或者DateTime单元格的内容和格式是否与这些数据类型一致.
如果您使用该Value2属性,金钱和日期值将作为盒装双打返回.(这些数字都在内部存储为双精度数,因此,因为Excel不需要测试是否转换它们,所以Value2稍快一点.)
因此,您可以检查列中每个值的类型,并相应地选择数据列的类型.如果要测试列是否可以具有更具体的数字类型(float,int,short,byte等),那么您还需要检查该列中的值范围,并测试它们是否为整数.