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

2024-02-06

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

例如我的.net方法:

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

我想让他们只需在随机单元格中键入公式即可调用此方法:

=CalculateSomethingReallyComplex(A1, B1)

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


您还应该看看 ExcelDna (http://www.codeplex.com/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 下的多线程重新计算。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 .net 方法公开为 Excel 函数? 的相关文章

  • .NET Framework 2.0 Service Pack 1 中新增的类型

    我以为 NET 2 0 SP1 中只有错误修复 没有新类型 直到我遇到few http davesbox com archive 2008 08 25 new for visual studio 2008 sp1 and fxcop 1 3
  • .NET 中的错误和异常有什么区别?

    您能向我解释一下错误和异常之间的区别吗 一个例外是利用语言语义的类 正如其他人所说 异常会中断堆栈的执行 直到被捕获 一个例外can用于传达错误 但更一般地用于传达发生了异常情况 另一方面 错误可能是异常的 也可能不是异常的 错误有以下几种
  • 从 DataGridViewSelectedRowCollection 复制列详细信息

    我有一个 DataGridView 它绑定到一个由设计时未知的 SQL 查询返回的 DataSet 好吧 我知道查询是什么 我只是不知道用户选择了哪一个 我允许用户从表中选择一组行并单击 确定 按钮 然后我想将这些行复制到新的 DataGr
  • 如何暂停特定时间? (Excel/VBA)

    我有一个 Excel 工作表 其中包含以下宏 我想每秒循环一次 但如果我能找到执行此操作的函数 那就很危险了 难道不可能吗 Sub Macro1 Macro1 Macro Do Calculate Here I want to wait f
  • 二维数组作为字典的项目

    我想用一个项目的几个属性填充字典 例子 我正在考虑拥有Item 1 and Item 2 as Dictionary键与array这将保留其属性 我需要能够单独访问项目的每个属性 因此将它们连接为一个字符串不是一种选择 我正在考虑类似下面的
  • 索引匹配不起作用

    对于下表 如果 A 列和 B 列都匹配 如何检索 C 列A 列 B 列 C 列城市 1 城市 10 本地城市 2 城市 21 远程城市 3 城市 1 远程城市 4 城市 2 本地 我尝试使用索引和匹配 但得到 N A Enter as an
  • 从共享网络文件夹运行的 .NET 应用程序的性能损失

    从共享网络文件夹运行 NET 4 0 应用程序是否有任何性能损失 我发现哪个应用程序启动速度较慢 但 在使用时没有注意到任何变慢 但不确定 当通过网络运行可执行文件时 Windows 不会在应用程序启动时通过网络传输整个应用程序 这样做是为
  • 打开 Excel 工作簿时自动运行 VBA 代码

    我有 VBA 代码 我想在打开 Excel 工作簿时运行 我尝试在代码应该运行的工作表中创建一个公共过程 Public Sub Workbook Open Some code here End Sub 工作簿打开时它不会运行 它应该在其中一
  • 最小化文件夹

    我想使用 C 最小化窗口 例如 我已经打开了这条路径E using process start E 我想在某个事件上最小化这条路径 我怎样才能做到这一点 以下示例控制台应用程序代码将最小化在 E 上打开的所有 shell 资源管理器视图 c
  • 按字母顺序对列表进行排序

    我有以下课程 class Detail public Detail details new List
  • URL 中的点 (.) 字符错误

    当我点击编辑具有此 url 的用户时遇到问题ASP NET MVC 3项目 http domain com 8089 User EditUser username surname IDUser e11a621p df11 4687 9903
  • 消除多个 Elseif 语句

    我试图保持我的代码干净 特别是在用户表单中使用组合框 可能会有很多 if Elseif 语句 应该有一种更简单的方法 让一个组合框不再需要多页代码 是吗 现在如何完成的示例 Sub Example Dim Variable as Strin
  • 在 ASP.NET 5 中创建基于每个请求控制器/操作的格式化程序

    我正在尝试在我的 ASP Rest API 中实现 HATEOAS 更改ReferenceResolverProvider 问题是 根据我使用的控制器 我想使用不同的ReferenceResolvers 因为我需要对每个控制器采取不同的行为
  • 在哪里使用 EF6 订阅 ObjectMaterialized?

    我正在尝试将我的上下文订阅到以下 OnjectMaterialized 事件this https stackoverflow com a 3756842 2835713 像这样 IObjectContextAdapter this Obje
  • 为什么 .Net 框架指南建议您不要使用 ref/out 参数?

    显然 他们很 混乱 这是认真的原因吗 你还能想到其他的吗 你见过有多少开发人员并不真正理解 ref out 吗 我在真正需要的地方使用它们 但在其他地方则不然 它们通常仅在您想有效返回两个或多个值时才有用 在这种情况下它至少值得thinki
  • Parallel.ForEach - 优雅取消

    关于等待任务完成和线程同步的主题 我目前有一个迭代 我已将其包含在 Parallel ForEach 中 在下面的示例中 我在评论中提出了一些关于如何最好地处理循环的优雅终止的问题 NET 4 0 private void myFuncti
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • 运行 Aero 时如何确定实际窗口窗体大小(包含所有非客户端元素)?

    我试图将我的表单精确定位在任务栏上方 不幸的是 我的努力受到了以下事实的阻碍 this Height在我的表单上返回一个比实际表单 包含所有边框 标题栏等 小 10 像素的值 我正在运行带 Aero 的 Windows 7 当 Aero 关
  • 为什么在 Excel for Mac 中使用 VBA 的输入框不显示提示文本?

    我一直在构建一个使用 Excel 跟踪学生成绩的系统 我在 Windows 下编写了它 一切正常 但是当我在 Mac 版本的 Excel 最新版 本 15 24 我相信 上测试它时 InputBoxes 只显示输入数据的标题和文本框 不显示
  • File.Move 的原子性

    我想将目录中的文件重命名为原子事务 该文件不会更改目录 该路径作为 NTFS 文件系统的 UNC 路径提供 可能位于服务器 03 或 08 上 File Move 对于这些目的来说是原子的吗 例如 它要么成功完成 要么失败 以使原始文件仍然

随机推荐

  • Localdate.format,未应用格式

    我的 FXML 中有一个 DatePicker 我需要日期才能将其插入到我的 SQL 数据库中 我想格式化我的日期 但它不起作用 LocalDate localDate purchased at getValue localDate for
  • 使用canvas和javascript读取图像的像素颜色

    我想知道是否可以使用画布和 javascript 扫描图像中的某些像素颜色并使用它们来制作地图 例如 寻找 ff0000并将其设置为地图上的数字1并设置 000000到 2 等等 制作如下地图 var map 1 1 1 1 1 1 0 0
  • Laravel Excel 上传和进度条

    我有一个网站 可以上传 xlsx文件 其中包含我的数据库的一些信息行 我阅读了 laravel excel 的文档 但看起来它只适用于进度条 如果您使用控制台方法 我不这么认为 我目前只使用纯 HTML 上传表单 还没有使用 ajax 但要
  • 我在哪里可以获得 admob jar?

    我确信这是一个愚蠢的问题 但我在任何地方都找不到链接 他们的 wiki 只是说 将 AdMob Jar 文件复制到该 libs 目录中 但不知道从哪里得到它 有一种更简单的方法来获取 AdMob SDK 只需从 Google AdMob 广
  • AngularJS - $emit/$on 或范围继承哪个更好?

    假设我得到了以下 HTML 结构
  • 如何在 html 上设置processingJS?

    如何在 html 页面上运行处理 JS 脚本 有人可以给我发送一个测试 html 和一个辅助代码文件以供我了解吗 假设我想运行这个矩形 rect 50 50 50 50 要添加到 Kevin 的答案中 如果您想使用带有 javascript
  • Maven发布更新政策

    我看到releases setting http maven apache org ref 3 2 2 maven settings settings html class releases在maven设置中有一个updatePolicy
  • 语义 UI - 更改主题

    我无法在语义 UI 中选择主题 我尝试按照中提供的说明进行操作工作流程部分 http learnsemantic com guide expert html manual install文档的 文件位于examples 项目的文件夹对于测试
  • QML - 当我不接受鼠标按下事件时无法获取鼠标释放事件

    我想将 onPressed 事件分派给 QML 树中的后续对象 我已指示 mouse accepted false 和propagateCompositedEvents true 但我希望保持 onreleased 事件在顶级元素上工作 这
  • 在 Sass 中乘以百分比

    如何在 Sass 中以合理的方式将两个百分比相乘 例如 考虑以下声明 num1 50 num2 25 num3 num2 num1 Here num3休息 我可以写什么表达方式num3定义为12 5 弄清楚了 首先 您需要将其中一个百分比转
  • 使用API​​将数据插入sqlite3数据库

    我正在尝试将 Web API 中的数据插入到我的数据库中 我在 python 3 7 2 上使用 sqlite3 但找不到任何有关如何执行此操作的教程 到目前为止我所有的代码是 import requests sqlite3 databas
  • 设置 JavaScript 变量 = null,还是保留未定义?

    在 JavaScript 函数顶部声明变量时 最佳实践是将它们设置为 null 还是保留为 未定义 换句话说 什么情况下需要下面的每个选项 选项A var a null b null 选项B var a b 这取决于上下文 未定义 表示该值
  • htaccess / mod_expires - 缓存特定文件

    好吧 我检查了很多关于如何使用管理浏览器缓存的网站 htaccess文件 但我仍然不清楚 我想将特定文件缓存一个月 对于其余的 我希望它每次都能刷新 所以我尝试
  • Hibernate - 使用 all-delete-orphan 清除集合然后添加到它会导致 ConstraintViolationException

    我有这些实体 class Foo Set
  • 使用用户定义的注释生成编译器警告

    是否可以让编译器在遇到用户定义的注释时生成警告 类似的东西 Deprecated注解 Thanks 根据您最初的问题和评论 我假设您正在尝试执行以下操作 将代码标记为不完整 带有编译器警告 以便其他开发人员尚未使用它 稍后识别 IDE 中不
  • 在 python 端在 kivy 中分配 ids

    我正在使用猕猴桃 我想做的是拥有 想法 一个滑块和一个标签 其中包含网格布局中一行中滑块的当前值 现在获取布局很好 但让标签具有与滑块当前值相同的文本值是很棘手的 我尝试使用字符串连接来引用与其配对的滑块具有相同数字后缀的标签 我认为我遇到
  • 跨度文本填充增加跨度大小

    我有以下跨度 span style border solid width 100px hello world span 在我看来 跨度的总宽度是根据填充大小而增加的 有没有办法防止跨度大小增加并将文本填充到右侧 不知道你的 padding
  • Linux 中的缓冲区和高速缓冲存储器有什么区别?

    对我来说 不清楚这两个 Linux 内存概念之间有什么区别 buffer and cache 我已读完这个帖子 https stackoverflow com questions 3192579 buffer and cache diffe
  • 在Python中将数组的数组转换为json[重复]

    这个问题在这里已经有答案了 我有一个数组数组 它 是从数据库查询中获取的SQL炼金术我想做两件事 我想获取列的名称 或类似的名称 从表中选择全名 AS 姓名 我想将最终产品转换为 json 对象数组 以便我可以在前端使用它 我已经搜索了几个
  • 将 .net 方法公开为 Excel 函数?

    我有一组计算方法位于 Net DLL 中 我想让 Excel 2003 用户可以使用这些方法 以便他们可以在电子表格中使用它们 例如我的 net方法 public double CalculateSomethingReallyComplex