Excel C API相当于Interop Range.Value在C#
试图找出如何读取引用的内容,并获得相同的结果和Interop / COM的Range.Value …即返回的对象[,]包含string,date时间和双打。
我正在使用ExcelDNA(和底层的XlCall.Excel调用C API)和两个…
ExcelReference.GetValue()
和XlCall.Excel( XlCall.xlfDeref, reference )
两者都返回等同于Interop / COM的Range.Value2的对象[,] …即返回的对象[,]仅包含string和双精度。
这个问题是date返回为double,我没有办法确定值是否应该是一个double
或DateTime
。
ExcelReference.GetValue()
永远不会返回一个DateTime,因为这永远不是一个单元格的存储值 – 它只是一个应用于数值(双)值的显示格式。 货币和百分比格式相似。
您可以阅读“当前显示的单元格的内容,作为文本,包括从单元格的格式生成的任何附加的数字或符号”。 使用带有C API的xlfGetCell
调用,使用选项53.但是,您必须确定该string是否代表您自己的date/时间。
也可以将“单元格的数字格式”作为文本(例如“m / d / yy”或“General”)来读取。 使用xlfGetCell
选项7。