编程语言
首页 > 编程语言> > Excel无法识别带有DateTime参数的C#函数

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使用ToOADateFromOADate方法自动将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