excel interop - 如何运行excel com加载项代码

时间:2011-07-26 14:09:09

标签: excel-interop comaddin

我创建了一个excel加载项。 我想要做的是在c#(ASP.NET)中打开一个excel文档并在加载项中运行一些代码,然后将excel文档作为html页面返回。

可以这样做吗?

1 个答案:

答案 0 :(得分:0)

在Com加载项中,我必须添加:

public partial class ThisAddIn
{
    ...
    protected override object RequestComAddInAutomationService()
    {
         if (addinUtilities == null)
         {
              addinUtilities = new AddinUtilities();
         }
         return addinUtilities;
    }
...
}

您应该从此函数返回一个对象,此对象稍后可以在interop中使用,如下面的代码片段中所示。添加要向此对象公开的任何功能。

然后按如下方式使用插件:

Application app = new Application();
var myAddin = app.COMAddIns;
var count = myAddin.Count;
COMAddIn addin;
for (int i = 1; i <= count ; i++) // not zero indexed
{
    addin = myAddin.Item(i);
    var ob = addin.Object;
    var str = addin.ProgId;
    if (ob != null)
    {
         ob.RunQuery(ws);
    }
}

正如你所看到的,我没有找到一个识别我的插件的好方法(如果有人知道我想听到的那个),但你可以迭代它们并检查progId。

addin.Object是我们从RequestComAddInAutomationService返回的对象。