6

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

例如,我的 .net 方法:

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

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

=CalculateSomethingReallyComplex(A1, B1)

实现这一目标的最佳方法是什么?

4

2 回答 2

8

您还应该看看 ExcelDna ( http://www.codeplex.com/exceldna )。ExcelDna 是一个开源项目(也可免费用于商业用途),它允许您使用 .Net 创建本机 .xll 插件。可以创建用户定义的函数 (UDF) 和宏。您的加载项代码可以位于包含 VB、C# 或 F# 代码的基于文本的脚本文件中,也可以位于托管 .dll 中。

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

于 2009-01-09T14:17:39.000 回答
3

有两种方法 - 您可以使用 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 方法应该可以正常工作。

于 2008-09-10T15:36:08.357 回答