从C#调用XLL文件中的函数

时间:2011-09-13 18:51:39

标签: c# .net excel xls xll

我有一个xll文件,它有一个函数,我想从C#调用该函数。 这个xll文件用于excel.any身体有想法如何做到这一点?。我尝试刷新xll文件,但我没有得到值。如果我打开excel像开始 - > programms - > excel和 在excel如果我直接给出功能我正在得到正确的值。如果我在c#中自动化excel并从Microsoft.Office.Interop.Excel中打开excel并应用该函数我收到错误

3 个答案:

答案 0 :(得分:0)

您可能无法直接调用该函数,因为XLL会期望Excel接口正在驱动。你必须做一些严肃的假装。<​​/ p>

通过Excel自动化它可以工作。

答案 1 :(得分:0)

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

自动化仅在运行Excel时有效。一旦你知道签名就没有必要了。

答案 2 :(得分:0)

您可以使用一些工具:

XLL Plus
XLL Host

MSDN上也提出了这个问题Use XLL from C#,这就是答案:

  

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

     

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

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

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

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

相关问题