excel Interop - come eseguire Excel componente aggiuntivo COM nel codice
-
27-10-2019 - |
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?
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
.