2010-04-21 2 views
2

Je sais que cette question a été publiée avant ... mais je n'ai pas encore trouvé de réponse (en plus des réponses génériques sur la façon dont XLL sont en fait DLL, etc). Quelqu'un at-il réussi à appeler un XLL à partir de dire C# (en utilisant DllImport) sans avoir à charger Excel avec le XLL chargé comme addin?Exécution d'un XLL en dehors d'Excel?

Fondamentalement, vous devrez créer un XLCALL32.DLL spécial qui simule l'hôte Excel. Cela ressemble à beaucoup de travail ... quelqu'un l'a-t-il fait? Ou vu un produit pour le faire?

Merci

+0

Voir la réponse à http://stackoverflow.com/questions/278025/calling-an-xll-from-unmanaged-c?rq=1 –

+0

Lire la réponse de goverts - XLL Plus est la voie à suivre, si l'argent est pas un problème - http://stackoverflow.com/questions/1940747/calling-excel-dll-xll-functions-from-c-sharp?rq=1 – quixver

+0

PS C'est beaucoup de travail. Stubbing Excel n'est pas aussi facile que cela puisse paraître. – quixver

Répondre

0

Vous êtes sur la bonne voie avec besoin de créer votre propre XLCall32.dll et simuler Excel. Ce n'est pas trivial compte tenu de ce que vous pouvez faire via l'interface que les XLL utilisent pour parler à Excel. Il devient plus facile d'utiliser Excel à partir de votre fichier XLL, donc je suppose que si vous avez une sélection connue de fichiers XLL que vous devez utiliser et que vous savez à quels bits Excel ils accèdent via l'interface XLL, vous pouvez juste remplacez les bits dont vous avez besoin ...

Pourquoi voulez-vous faire cela?

+0

J'ai un XLL que j'ai écrit il y a quelques temps. J'ai perdu le code source. Et j'aimerais pouvoir appeler ses fonctions de C#. – Nestor

+0

À mon humble avis, il serait plus facile pour vous de réécrire le XLL dans une forme que vous pouvez appeler à partir de C# que ce serait d'écrire un substitut XLCall32.dll et de simuler Excel ... Puis encore, je suppose que cela dépend de combien vous étiez utiliser Excel pour faire votre travail, mais je pense que vous pouvez vous en souvenir, alors vous devriez au moins savoir quelles parties d'Excel vous devez simuler. Ensuite, il y a juste la question de charger le xll, en rassemblant vos types de C# aux XLOPERs appropriés et en appelant les points d'entrée ... –

0

Évaluation de cette bibliothèque XLL+ (qui n'est pas gratuite, fonctionnant sur une station d'essai) qui permet de "simuler"/"simuler" des appels XLCALC32.dll (car il ne nécessite que 2 méthodes pour autant que je comprenne). Je vous ferai savoir si j'arrive quelque part.

Questions connexes