Excel interop - Cómo ejecutar el código de complemento de Excel com
-
27-10-2019 - |
Pregunta
Tengo un complemento de Excel que creé. Lo que quiero hacer es abrir un documento de Excel en C# (ASP.NET) y ejecutar algún código en el complemento y luego devolver el documento de Excel como una página HTML.
Se puede hacer esto?
Solución
En el complemento COM tuve que agregar:
public partial class ThisAddIn
{
...
protected override object RequestComAddInAutomationService()
{
if (addinUtilities == null)
{
addinUtilities = new AddinUtilities();
}
return addinUtilities;
}
...
}
Debe devolver un objeto de esta función, este objeto se puede usar más tarde en INETOP como en el fragmento de código a continuación. Agregue cualquier funcionalidad que desee exponer a este objeto.
Luego use el complemento de la siguiente manera:
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);
}
}
Como puede ver, no he encontrado una buena manera de identificar mi complemento (si alguien sabe de uno que me gustaría escuchar), pero puede iterar sobre ellos y verificar el Progid.
addin.Object
es el objeto del que regresamos RequestComAddInAutomationService
.