Domanda

Ho un Excel Add-in ho creato. Quello che voglio fare è quello di aprire un documento Excel in C # (ASP.NET) ed eseguire del codice nel componente aggiuntivo e quindi restituire il documento di Excel come una pagina HTML.

Può questo essere fatto?

È stato utile?

Soluzione

Nel componente aggiuntivo COM ho dovuto aggiungere:

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

Si deve restituire un oggetto da questa funzione, questo oggetto può successivamente essere utilizzato in interoperabilità come nel frammento di codice seguente. aggiungere qualsiasi funzionalità che si desidera esporre a questo oggetto.

Quindi utilizzare il componente aggiuntivo come segue:

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);
    }
}

Come si può vedere non ho trovato un buon modo di identificare il componente aggiuntivo (se qualcuno sa di uno mi piacerebbe sentire), ma è possibile scorrere su di loro e controllare il ProgID.

addin.Object è l'oggetto siamo tornati da RequestComAddInAutomationService.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top