Je vois beaucoup sur le web à propos de VSTO et d'automatiser Excel de C#, mais très peu pour commencer à câbler un assemblage C# pour le rendre visible depuis Excel. Est-ce que quelqu'un peut me diriger vers quelques informations très simples expliquant comment créer une interface COM, GUIDS, ComVisible, etc?com interop: comment consommer C# à partir d'Excel ou Access
Répondre
Fondamentalement, tout ce que vous devez faire est
- Faites votre assembly COM visible en utilisant l'attribut respectif dans la propriété projet informations sur la version de l'Assemblée de dialogue
- Pour chaque classe publique, ajoutez le bloc suivant (voir [1 ]) du code ci-dessus la définition de classe
- enregistrer DLL à l'aide de l'outil
regasm.exe
trouve dans le dossier d'installation .NET 2
aussi, assurez-vous pour ajouter un nom descriptif au nom et à la description de l'application dans la boîte de dialogue Informations sur la version de l'assemblage (ils sont ensuite utilisés pour sélectionner les classes COM).
[1] Bloc de code pour ajouter avant la définition de classe:
[ClassInterface(ClassInterfaceType.AutoDual)]
[ProgId("SomeNameHere")]
[ComVisible(true)]
[Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx")]
Après cela, vous devriez être en mesure d'utiliser la classe comme une autre classe normale COM.
EDIT
Il convient de noter que je n'ai pas l'expérience avec des classes Excel et C# COM - J'utilise C# avec Microsoft Navision, qui fonctionne très bien la façon dont je l'ai décrit ci-dessus.
Il existe de nombreux livres qui pourraient vous aider à démarrer. "Pro C# 2008" de Wrox a un grand chapitre à ce sujet. En outre, voici un article MSDN blog sur COM Visible à Excel.
Plutôt que de descendre la route COM, il est considérablement plus facile (et moins d'un problème d'installation) d'utiliser quelque chose comme ExcelDNA. Il vous permet d'écrire des XLL dans .Net qui ne nécessitent pas d'inscription. C'est aussi un système open-source et très bien supporté par la communauté.
- 1. C# + COM Interop, version déterministe
- 2. Impossible d'utiliser AppDomain à partir de COM interop
- 3. Comment consommer les bibliothèques COM pour SQLSERVERSMO?
- 4. Retour d'un tableau de JS à C# avec COM-Interop
- 5. Sérialisation de l'objet COM Interop à l'aide de C#
- 6. MS Access interop - Data Import
- 7. domaines d'application dans COM interop
- 8. COM Interop IDictionary - Comment récupérer une valeur en C#?
- 9. Marquage des BSTR de C++ vers C# avec COM interop
- 10. API COM VirtualBox à partir de C#
- 11. Enregistrement d'assemblys x64 pour COM Interop
- 12. Consommer des événements COM en Python
- 13. COM Interop (comment passer un tableau à la com) via ASP classique
- 14. Exposer la fonctionnalité via Prism & Com Interop
- 15. Comment faire passer une transaction de Navision à un composant C# enregistré pour COM interop?
- 16. Comment accéder à un objet COM en cours d'exécution à l'aide de .NET Interop?
- 17. appelant C# à partir du complément com C++
- 18. COM Interop utilisant des types génériques
- 19. Utilisation de CoGetClassObject() en C - interface COM Object Access
- 20. COM Interop, isolation et exclusion des références dupliquées
- 21. Interop envoi chaîne de C# à C++
- 22. COM Exceptions en C#
- 23. C# et Excel interop
- 24. MSBuild sortie vs sortie Visual Studio contre un interop COM
- 25. Comment puis-je disposer d'un objet COM VB6 que j'utilise via un assembly interop à partir de IronPython?
- 26. C# interop - l'objet de validation existe
- 27. Est-il possible d'exposer un C# Enum aux appelants COM Interop, et si oui, comment?
- 28. C# Winforms-WPF interop
- 29. Appel d'un objet COM à partir de .Net C#
- 30. Tuer un objet COM hors processus à partir de C#
Je devrai me pencher là-dessus. Merci – Nick