Excel不识别带有DateTime参数的C#函数
我想要构build具有以下function的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 。
问题与DateTimetypes有关,我试图将其更改为stringtypes,但函数是无法识别的。 任何想法如何解决这个问题?
我最终想达到的是给这个函数两个DateTime数组,并取回这些交集。
根据此线程 ,Excel-DNA应该使用ToOADate
和FromOADate
方法自动将DateTime
值编组为double
。
我没有自己尝试过,但我的猜测是,它没有设置检测数组或DateTime
列表,但只有单个DateTime
参数。
尝试将参数声明为double[]
,然后在函数内部执行如下操作:
DateTime dt[] = values.Select(x => DateTime.FromOADate(x)).ToArray();
或者每个值分别调用FromOADate
,具体取决于函数的需要。
尽pipe该函数被声明为double[]
,但仍然应该能够传递一个包含date的单元格数组,因为Excel将要传递它们作为OLE自动化date。