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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top