Excel C API相当于互操作范围。C中的值#

Excel C API相当于互操作范围。C中的值#,excel,excel-interop,excel-dna,c-api,Excel,Excel Interop,Excel Dna,C Api,试图找出如何读取引用的内容并获得相同的结果和Interop/COM的Range.Value…即返回的对象[,]包含字符串、DateTime和double 我正在使用ExcelDNA(以及底层的XlCall.Excel来调用C API)和两者 ExcelReference.GetValue()和 XlCall.Excel(XlCall.xlfDeref,参考) 两者都返回一个与Interop/COM的Range.Value2等效的对象[,],即返回的对象[,]只包含字符串和双精度 问题是日期以双精

试图找出如何读取引用的内容并获得相同的结果和Interop/COM的Range.Value…即返回的对象[,]包含字符串、DateTime和double

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


ExcelReference.GetValue()
XlCall.Excel(XlCall.xlfDeref,参考)

两者都返回一个与Interop/COM的Range.Value2等效的
对象[,]
,即返回的对象[,]只包含字符串和双精度


问题是日期以双精度返回,我无法确定该值应该是
double
还是
DateTime

ExcelReference.GetValue()
永远不会返回日期时间,因为它永远不是单元格的存储值-它只是应用于数字(双精度)的显示格式价值货币和百分比格式类似

您可以使用选项53,使用C API的
xlfGetCell
调用来读取“当前显示的单元格内容,即文本,包括由单元格格式产生的任何附加数字或符号”。但是,您必须自己确定字符串是否表示日期/时间

还可以使用
xlfGetCell
选项7读取“单元格的数字格式,如文本(例如,“m/d/yy”或“General”)”