Excel无法识别带有DateTime参数的C#函数
作者:互联网
我想用以下功能构造Excel插件:
[ExcelFunction()]
public static double myAverage1(double[] inputVector)
{
return inputVector.Sum()/inputVector.Length ;
}
[ExcelFunction()]
public static double myAverage2(DateTime[] TS1_DateTime)
{
return 12.5;
}
问题是Excel无法识别功能myAverage2.
问题与DateTime类型有关,我尝试将其更改为String类型,但该功能仍然无法识别.任何想法如何解决这个问题?
我最终要达到的目标是给该函数两个DateTime数组并返回它们的交集.
解决方法:
根据this thread,假定Excel-DNA使用ToOADate
和FromOADate
方法自动将DateTime值编组为两倍.
我自己还没有尝试过,但是我猜测它不是设置为检测DateTime的数组或列表,而是仅检测单个DateTime参数.
尝试将参数声明为double [],然后在函数中执行以下操作:
DateTime dt[] = values.Select(x => DateTime.FromOADate(x)).ToArray();
或者只是根据函数的需要分别对每个值调用FromOADate.
尽管函数被声明为double [],但是您仍然应该能够传递包含日期的单元格数组,因为Excel无论如何都希望将其作为OLE自动化日期传递.
标签:add-in,excel-dna,c,excel 来源: https://codeday.me/bug/20191121/2050047.html