Comment faire pour charger un Complément Excel à l'aide de l'Interopérabilité
J'ai un AddIn qui je veux invoquer via Excel interop à partir d'un C#, winforms application.
Je ne peux pas obtenir le complément etc. à la charge à moins que je l'ai désinstaller et resinstall à chaque fois (c'est apparemment quelque chose à faire avec Excel ne charge pas les addins lorsque vous utilisez l'interopérabilité - btw, ne peuvent pas obtenir leur exemple en C#). Malheureusement, c'est lent et ennuyeux de l'utilisateur, donc j'ai besoin de le simplifier.
Je veux avoir une instance de microsoft Excel, mais la charge déjà installé en complément, sans forcer, ce installer/réinstaller problème.
J'ai cherché et cherché mais tout ce que j'ai trouver sur google vous donne la solution pour installer/réinstaller. Est-il un autre moyen? L'add-in est installé, je veux juste excel pour le charger.
C'est ce que je fais en ce moment (prises à partir de google auriez des conseils):
//loop over the add-ins and if you find it uninstall it.
foreach (AddIn addIn in excel.AddIns)
if (addIn.Name.Contains("My Addin"))
addin.Installed = false;
//install the addin
var addin = excel.AddIns.Add("my_addin.xll", false);
addin.Installed = true;
- Pourriez-vous expliquer pourquoi vous avez besoin de faire Installer/Désinstaller? Je suis en train d'essayer de comprendre la façon dont Excel charge de complément, une fois que vous définissez pour la charger à chaque fois. Pourquoi faut-il installer/désinstaller?
- où est-ce code appelé? je suppose un autre Excel AddIn? ou tout simplement un winform C# app?
- J'ai mis à jour la question avec les points que vous avez soulevés, mais rapidement: Excel ne prend pas en charge les compléments à travers l'interopérabilité, tout ce que j'ai trouvé sur le net, dit-désinstallation/installation est la solution. Le Code est appelé à partir d'un c#, winforms app
- Notez que
Installed
signifie quelque chose comme "activé". Réglage de l'installation de propriété sur false et true n'est pas "installer" et "désinstaller", mais ne fait que l'addin sur et en dehors.
Vous devez vous connecter pour publier un commentaire.
Après un certain temps, j'ai trouvé la réponse cachée dans des lieux étranges dans le MS aider: et ce blog.
Ce n'est pas toutes les informations dont vous avez besoin si. Choses à noter: vous devez avoir au moins un classeur ouvert ou autrement Excel barfs. Voici quelques rudementry code pour commencer:
Si vous le souhaitez, vous pouvez fermer la temporaire de classeur (si vous avez exécuté un certain nombre de macros etc.) et n'oubliez pas de ranger le tout avec beaucoup d'appels de Maréchal.ReleaseComObject!
Il semble que vous avez pour obtenir les bonnes Excel pour travailler avec. Utilisez cette classe pour ouvrir le document Excel:
Utiliser la classe dans votre application comme ceci: