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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top