0

我有一个 xll 文件,它有一个函数,我想从 C# 调用该函数。这个 xll 文件在 excel 中使用。任何人都知道如何做到这一点?我直接给出我得到正确值的函数。同样的事情如果我在 c# 中自动化 excel 并从 Microsoft.Office.Interop.Excel 打开 excel 并应用该函数我得到错误

4

3 回答 3

0

xll 只是一个 dll。如果您知道要调用的函数的签名,则可以像调用任何其他函数一样调用它。如果您不知道签名但可以在 Excel 中加载加载项,有一种方法可以让 Excel 告诉您签名。

自动化仅在您运行 Excel 时才有效。一旦您知道签名,就不需要这样做了。

于 2011-09-16T13:33:54.617 回答
0

您可能无法直接调用该函数,因为 XLL 将期望 Excel 接口正在驱动。你必须做一些严肃的伪装。

不过,通过 Excel 将其自动化是可行的。

于 2011-09-13T18:54:16.930 回答
0

您可以使用一些工具:

XLL Plus
XLL 主机


在 MSDN Use XLL from C#上也有人问过这个问题,这就是答案:

如果是 COM 项目,您可以通过 Add reference 窗口中的 COM 选项卡添加它。

如果您需要从 dll 创建一个 .NET 程序集,您可以尝试使用类型库导入工具在 dll 周围创建一个包装器:

tlbimp.exe xll.dll /out:xllnet.dll

如果对象不支持 COM,而只支持本机调用,则需要使用 DllImport 属性在平台调用方法。有关更多信息,请参阅平台调用教程。


我给了所有 3 个建议,但没有任何运气。鉴于 XLL 工具的作者Excel-DNA建议使用我怀疑在 Winform/WPF/Console 或 Web 应用程序中使用 XLL 的工具并非易事: https ://stackoverflow.com/a/2865023/495455

于 2017-05-03T06:25:54.147 回答