【发布时间】:2015-05-07 13:38:12
【问题描述】:
我有一个 excel 插件 (*.xla),其中包含许多复杂的函数,这些函数都接受输入参数和返回值。很遗憾,我无法创建 *.XLL,因为我无权访问 *.xla 文件。
我已经设法使用 C# 将 excel 函数写入单元格(作为字符串),计算单元格,然后将结果检索回 C#。这种方法有效,但感觉非常临时且效率低下。
鉴于上述情况,是否有更好的方法从 C# 调用自定义 excel 函数(接受参数)?
【问题讨论】:
我有一个 excel 插件 (*.xla),其中包含许多复杂的函数,这些函数都接受输入参数和返回值。很遗憾,我无法创建 *.XLL,因为我无权访问 *.xla 文件。
我已经设法使用 C# 将 excel 函数写入单元格(作为字符串),计算单元格,然后将结果检索回 C#。这种方法有效,但感觉非常临时且效率低下。
鉴于上述情况,是否有更好的方法从 C# 调用自定义 excel 函数(接受参数)?
【问题讨论】:
如何使用优秀的 Excel-DNA 构建一个使用 xlfEvaluate 调用 .xla 中定义的 UDF 的 C# XLL? xlfEvaluate 的 MSDN 文档:https://msdn.microsoft.com/en-us/library/office/bb687913.aspx。您可以传入任何可以出现在工作表单元格中的字符串。因此,编写一些 C# 代码将 VBA 函数的名称和一些参数组合成一个字符串,然后将它们传递给 xlfEvaluate,应该不会太难。
【讨论】: