我正在从XLSX工作表中读取值,并将它们放入数据表中。
我的问题是,我似乎无法推断出单元格的数据类型,因此无法设置数据表的列类型。
最佳答案
与C#相比,Excel键入数据的方法要宽松得多。例如,数值始终为 double 。如果使用范围对象的Value
属性(互操作中的get_Value()
,如果我没记错的话),如果单元格的内容和格式与那些数据类型一致,Excel可能会返回(装箱的)decimal
或DateTime
。
如果您使用Value2
属性,则金钱和日期值将以方框 double 形式返回。 (所有数字都在内部以 double 形式存储,因此,由于Excel不需要测试是否进行转换,因此Value2会稍快一些。)
因此,您可以检查列中每个值的类型,然后相应地选择数据列的类型。如果要测试一列是否可以具有更特定的数字类型(浮点型,整数型,短型,字节型等),则还需要检查该列中值的范围,并测试它们是否为整数。
关于c# - 在C#中获取Excel单元格的数据类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8521974/