Excel C API等效于C#中的Interop Range.Value



试图弄清楚如何读取引用的内容,并获得相同的结果和Interop/COM的Range.Value…即返回的对象[,]包含string、DateTime和doubles。

我正在使用ExcelDNA(和底层的XlCall.Excel来调用C API)和两者。。。

ExcelReference.GetValue()XlCall.Excel( XlCall.xlfDeref, reference )

两者都返回一个相当于Interop/COM的Range.Value2…的object[,],即返回的对象[,]只包含字符串和双精度。

这样做的问题是Dates返回为double,我无法确定该值是double还是DateTime

ExcelReference.GetValue()永远不会返回DateTime,因为它从来都不是单元格的存储值——它只是应用于数字(双精度)值的显示格式。货币和百分比格式类似。

您可以使用选项53,使用带有C API的xlfGetCell调用来读取"当前显示的单元格内容,包括单元格格式所产生的任何附加数字或符号"。但是,您必须自己弄清楚该字符串是否代表日期/时间。

也可以使用xlfGetCell选项7读取"单元格的数字格式,作为文本(例如,"m/d/yy"或"General")。"。

相关内容

  • 没有找到相关文章

最新更新