質問

作成したExcelアドインがあります。私がやりたいのは、C#(ASP.NET)でExcelドキュメントを開き、アドインでいくつかのコードを実行してから、HTMLページとしてExcelドキュメントを返すことです。

これはできますか?

役に立ちましたか?

解決

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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top