Excel Interop- Excel Comアドインコードを実行する方法
-
27-10-2019 - |
質問
作成した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
.
所属していません StackOverflow