c# - 使用 C# 创建新的 Excel 函数(用户定义函数)

标签 c# excel user-defined-functions excel-dna

我想创建一个新的 Excel 函数(用户定义的函数),为此我执行了与此链接中相同的步骤:https://excel-dna.net/

  1. 我创建了一个类库项目

  2. 我安装了 ExcelDna.Integration 包

  3. 我创建了一个方法 sayHello

但是当我尝试从 excel 中的单元格调用我的函数时(我输入 =sayHello("World"),该函数没有出现,它似乎没有添加到 excel 函数中。 有一些遗漏的步骤吗?我怎样才能使我的功能看起来能够使用它?

最佳答案

您应该安装包 "ExcelDna.AddIn" 来制作插件(这将设置插件,包括重要的 .dna 文件,并引入 “ExcelDna.Integration” 引用库)。

所以步骤是:

  • 创建一个新的 C# 类库项目(针对 .NET Framework 而不是 .NET Standard)
  • 安装 ExcelDna.AddIn
  • 添加一些代码,例如

公共(public)静态类 MyFunctions { public static string SayHello(string name) { return "Hello "+ name; } }

  • 按 F5 在 Excel 中编译和加载加载项

(请注意,在某些 Excel 安装中,项目的调试设置会在可执行路径中获得一个额外的 %1 - 如果在调试时出现错误,只需将其从末尾删除)

对 Excel-DNA 的最佳支持是位于 https://groups.google.com/forum/#!forum/exceldna 的 Google 组

关于c# - 使用 C# 创建新的 Excel 函数(用户定义函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49687851/

相关文章:

date - Excel VBA - 日期格式自动更改

c# - 如何终止基于 C# 的 Excel 应用程序实例?

apache-pig - Pig - 将 Databag 传递给 UDF 构造函数

c# - Postgres analog for c# SQL Server´s stored procedure CLR

scala - 将结构传递给 spark 中的 UDAF

c# - LINQ GroupBy 然后 OrderBy 上一个查询的属性

c# - 为什么我可以将 1 作为 short 而不是 int 变量 i 传递?

c# - 我如何在 C# 中等待一段时间(Windows 服务)

c# - Update 更改DataGrid 到数据库?

vba - 如果 B 列和 C 列均为空白,Excel VBA 删除整行