Question

J'ai un add-in Excel j'ai créé. Ce que je veux faire est d'ouvrir un document Excel en c # (ASP.NET) et exécuter du code dans le complément puis retourner le document Excel comme une page html.

Peut-on faire?

Était-ce utile?

La solution

Dans le i dû ajouter COM ajouter:

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

Vous devriez retourner un objet de cette fonction, cet objet peut ensuite être utilisé dans Interop comme dans l'extrait de code ci-dessous. ajouter toutes les fonctionnalités que vous souhaitez exposer à cet objet.

Ensuite, utilisez la Addin comme suit:

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

Comme vous pouvez le voir je n'ai pas trouvé un bon moyen d'identifier mon complément (si quelqu'un sait d'un je voudrais entendre), mais vous pouvez itérer sur eux et vérifier le PROGID.

addin.Object est l'objet de notre retour RequestComAddInAutomationService.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top