office是64位的,编程工具是Visual Studio 2019
- Create a new Class Library (.NET Framework) project in C#.
- Use the Manage NuGet Packages dialog or the Package Manager Console to install the Excel-DNA package:
PM> Install-Package ExcelDna.AddIn
- Add your code (C#):
using ExcelDna.Integration;
namespace ExcelDNA
{
public static class MyFunctions
{
[ExcelFunction(Description = "My first .NET function", Category = "STRING")]
public static string SayHello([ExcelArgument(Name = "TEXT", Description = "text to split")] string name)
{
return "Hello " + name;
}
}
}
-
Compile, 在生成目录里会出现许多文件,生成目录下有4个xll文件,其中有一个是我们所用的:
ExcelDNA-AddIn64.xll
看名字应该用在64位office中。其他还不知到有什么用,放在那里,不管他。
-
打开Excel,加载步骤如下:
首先到信任中心把ExcelDNA-AddIn64.xll
文件所在的目录添加:
trusted center > trusted locations > add new locations
开发工具,Excel加载项,浏览,选择生成目录的ExcelDNA-AddIn64.xll
文件,可用加载宏,勾选。
如果开发工具选项卡不在功能区,选文件,选项,自定义功能区,主选项卡,开发工具,勾选。
清除多余的加载宏项目:删除加载宏项目对应的文件,勾选要清除的项目,会出现对话框,问是否清除加载宏项目,确认清除。
-
load and use your function in Excel:
=SayHello("World!")
当你在Excel手动输入函数时,函数名会出现在智能提示框中。
公式,插入函数,选择类别STRING
,可以找到SayHello
函数,并且有描述信息。
用到Excel类型,仍然可以引用程序集,扩展:
using Microsoft.Office.Interop;
using Excel = Microsoft.Office.Interop.Excel;
获得应用的方法:
var xlApp = (Application)ExcelDnaUtil.Application;
参考文献:
https://jingyan.baidu.com/article/f71d6037c911351ab741d150.html