VSTO:使用C#开发Excel、Word【11】
2021-08-08 04:56
标签:路径 get div 多个 cell 获取 string 工作表 static 编程用户定义的功能Excel可以创建可在Excel公式中使用的用户定义的函数。 开发人员必须创建一种称为XLL的特殊类型的DLL。 Excel还允许您在VBA中编写可在Excel公式中使用的自定义函数。 不幸的是,Excel不支持或建议编写使用托管代码的XLL。 构建提供用户定义函数的管理型自动化加载项幸运的是,创建一个不需要创建XLL的用户定义函数有一个更简单的方法。 Excel 2003支持称为自动化加载项的定制技术,可以轻松地在C#或Visual Basic中创建。 首先,启动Visual Studio并创建一个新的C#类库项目。将项目命名为AutomationAddin。在您在新项目中为您创建的Class1.cs文件中,输入如清单3-1所示的代码。该代码定义了一个名为MyFunctions的类,它实现了一个名为MultiplyNTimes的函数。我们将使用此函数作为自定义公式。我们的类还实现了RegisterFunction和UnregisterFunction,它们分别归因于ComRegisterFunction属性和ComUnregisterFunction属性。当COM程序集注册为COM互操作时,RegisterFunction将被调用。当汇编未注册COM互操作时,UnregisterFunction将被调用。这些功能在注册表中放置了一个必要的密钥,允许Excel知道该类可以用作自动化加载项。 清单3-1 一个C#类被称为MyFunction,它暴露了一个用户定义的函数乘法 using System; using System.Runtime.InteropServices; using Microsoft.Win32; namespace AutomationAddin { [ClassInterface(ClassInterfaceType.AutoDual)] public class MyFunctions { public MyFunctions() { } public double MultiplyNTimes(double number1, double number2, double timesToMultiply) { double result = number1; for (double i = 0; i