将.net方法公开为Excel函数吗?

时间:2020-03-05 18:50:49  来源:igfitidea点击:

我坐在.Net DLL中有一组计算方法。我想将这些方法提供给Excel(2003+)用户,以便他们可以在电子表格中使用它们。

例如,我的.net方法:

public double CalculateSomethingReallyComplex(double a, double b) {...}

我希望使他们能够仅通过在随机单元格中键入公式来调用此方法:

=CalculateSomethingReallyComplex(A1, B1)

做到这一点的最佳方法是什么?

解决方案

回答

我们可以使用两种方法使用Visual Studio Tools for Office(VSTO):

http://blogs.msdn.com/pstubbs/archive/2004/12/31/344964.aspx

或者我们可以使用COM:

http://blogs.msdn.com/eric_carter/archive/2004/12/01/273127.aspx

我不确定VSTO方法是否可以在旧版本的Excel中使用,但COM方法应该可以正常使用。

回答

我们还应该查看ExcelDna(http://www.codeplex.com/exceldna)。 ExcelDna是一个开源项目(也免费供商业使用),使我们可以使用.Net创建本机.xll加载项。可以创建用户定义的函数(UDF)和宏。外接程序代码可以在包含VB,Cor Fcode的基于文本的脚本文件中,也可以在托管的.dll中。

由于使用的是本机Excel SDK接口,而不是基于COM的自动化,因此可以轻松部署基于ExcelDna的加载项,并且无需注册。 ExcelDna支持从Excel '97到Excel 2007的Excel版本,并包括对Excel 2007数据类型(大工作表和Unicode字符串)的支持,以及Excel 2007下的多线程重新计算。