Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Toujours du Office, toujours du python !

2 réponses
Avatar
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.

2 réponses

Avatar
Méta-MCI \(MVP\)
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

Avatar
news.free.fr
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 !