Excel Interop - So führen Sie Excel COM -Add -In -Code aus
-
27-10-2019 - |
Frage
Ich habe ein Excel-Add-In, das ich erstellt habe. Ich möchte ein Excel-Dokument in C# (ASP.NET) öffnen und einen Code im Add-In ausführen und dann das Excel-Dokument als HTML-Seite zurückgeben.
Kann das getan werden?
Lösung
Im COM-Add-In musste ich hinzufügen:
public partial class ThisAddIn
{
...
protected override object RequestComAddInAutomationService()
{
if (addinUtilities == null)
{
addinUtilities = new AddinUtilities();
}
return addinUtilities;
}
...
}
Sie sollten ein Objekt aus dieser Funktion zurückgeben. Dieses Objekt kann später in Interop wie im folgenden Code -Snippet verwendet werden. Fügen Sie alle Funktionen hinzu, die Sie diesem Objekt aussetzen möchten.
Verwenden Sie dann das Addin wie folgt:
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);
}
}
Wie Sie sehen, habe ich keine gute Möglichkeit gefunden, mein Add-In zu identifizieren (wenn jemand von einem weiß, den ich hören möchte), aber Sie können über sie iterieren und den Progid überprüfen.
addin.Object
ist das Objekt, aus dem wir zurückgekehrt sind RequestComAddInAutomationService
.