Toujours du Office, toujours du python !

Le
news.free.fr
Bonjour,

Je souhaiterais savoir si certains d'entre vous ont déjà embarqué du C#
dans un script python.
Est-ce fiable ? Est-ce performant ?

Je suis à la recherche d'un moyen de piloter efficacement Office depuis
python.

En utilisant COM depuis python des performances sont lamentables
(surtout depuis 2007).

Merci pour vos informations.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Méta-MCI \(MVP\)
Le #682155
Bonsoir !


Je souhaiterais savoir si certains d'entre vous ont déjà embarqué du
C# dans un script python.


Difficile : C# est compilé statiquement avant l'exécution. Il ne peut
pas être embarqué en tant que code-source.
Toutefois, il existe des possibilités de créer, avec C# des
objets-serveur-COM, qui peuvent être appelés depuis Python (ce qui
revient à les "embarquer").
Une autre possibilité, c'est de créer des assemblies dotNET, qui
pourront être appelée par Python.Net (ou par IronPython, mais là, on
n'est plus purement Python).

Autre chose : je sais qu'il est possible d'appeler des
objets-serveur-COM développés en Python, depuis des programmes en C#. Ce
n'est pas simple, car il faut utiliser une technologie appelée
"LateBinding", ce qui se fait entièrement par code, et absolument pas
par les outils de l'IDE Visual-Studio. Mais c'est possible.


Je suis à la recherche d'un moyen de piloter efficacement Office
depuis python.
En utilisant COM depuis python des performances sont lamentables
(surtout depuis 2007).


J'ai développé deux classes pour ça : une pour piloter Word, l'autre
pour Excel. Mais, il en existe (beaucoup) d'autres...
Pour les perfs, c'est comme tout : il faut adapter son code. Par
exemple, avec Excel, en le mettant en invisible, et en envoyant des
listes de listes (au lieu de X fois de simples cellules), ça va vite
(par exemple, je transfère 53000 code_postaux + nom de ville + longitude
+ latitude + n° interne, en moins d'une demi-seconde).


@-salutations
--
Michel Claveau

news.free.fr
Le #682153
Bonsoir !


Je souhaiterais savoir si certains d'entre vous ont déjà embarqué du
C# dans un script python.


Difficile : C# est compilé statiquement avant l'exécution. Il ne peut
pas être embarqué en tant que code-source.
Toutefois, il existe des possibilités de créer, avec C# des
objets-serveur-COM, qui peuvent être appelés depuis Python (ce qui
revient à les "embarquer").
Une autre possibilité, c'est de créer des assemblies dotNET, qui
pourront être appelée par Python.Net (ou par IronPython, mais là, on
n'est plus purement Python).

Autre chose : je sais qu'il est possible d'appeler des
objets-serveur-COM développés en Python, depuis des programmes en C#. Ce
n'est pas simple, car il faut utiliser une technologie appelée
"LateBinding", ce qui se fait entièrement par code, et absolument pas
par les outils de l'IDE Visual-Studio. Mais c'est possible.


Je suis à la recherche d'un moyen de piloter efficacement Office
depuis python.
En utilisant COM depuis python des performances sont lamentables
(surtout depuis 2007).


J'ai développé deux classes pour ça : une pour piloter Word, l'autre
pour Excel. Mais, il en existe (beaucoup) d'autres...
Pour les perfs, c'est comme tout : il faut adapter son code. Par
exemple, avec Excel, en le mettant en invisible, et en envoyant des
listes de listes (au lieu de X fois de simples cellules), ça va vite
(par exemple, je transfère 53000 code_postaux + nom de ville + longitude
+ latitude + n° interne, en moins d'une demi-seconde).


@-salutations
Merci pour le truc du liste de liste !



Publicité
Poster une réponse
Anonyme