Je voudrais savoir si il est possible d'ouvrir une feuille Excel par un
script python, de sélectionner des cellules, que celle sélection soit
renvoyée au script et qu'il fasse des traitements sur la sélection.
#MACROS #[WORKBOOK.SELECT("FEUIL2")] #[APP.ACTIVATE][ALERT("Hello from the sample Excel DDE driver")] #[APP.ACTIVATE][QUIT]
server = dde.CreateServer() server.Create('') conversation = dde.CreateConversation(server)
conversation.ConnectTo('excel','system') #conversation.ConnectTo('excel','[Classeur1]Feuil1') if (conversation.Connected() == 0): print "nnERROR: No connection possible." conversation.Shutdown() sys.exit() # end program
Je voudrais savoir si il est possible d'ouvrir une feuille Excel par un script python, de sélectionner des cellules, que celle sélection soit renvoyée au script et qu'il fasse des traitements sur la sélection.
Merci !
Bonjour
OUI par echange de type DDE ou par COM.
Bientôt, j'aurai terminé sous openoffice un fichier d'installation de
macros en
python permettant de dialoguer avec la liaison série RS232c et scalc.
#MACROS
#[WORKBOOK.SELECT("FEUIL2")]
#[APP.ACTIVATE][ALERT("Hello from the sample Excel DDE driver")]
#[APP.ACTIVATE][QUIT]
server = dde.CreateServer()
server.Create('')
conversation = dde.CreateConversation(server)
conversation.ConnectTo('excel','system')
#conversation.ConnectTo('excel','[Classeur1]Feuil1')
if (conversation.Connected() == 0):
print "nnERROR: No connection possible."
conversation.Shutdown()
sys.exit() # end program
Je voudrais savoir si il est possible d'ouvrir une feuille Excel par un
script python, de sélectionner des cellules, que celle sélection soit
renvoyée au script et qu'il fasse des traitements sur la sélection.
#MACROS #[WORKBOOK.SELECT("FEUIL2")] #[APP.ACTIVATE][ALERT("Hello from the sample Excel DDE driver")] #[APP.ACTIVATE][QUIT]
server = dde.CreateServer() server.Create('') conversation = dde.CreateConversation(server)
conversation.ConnectTo('excel','system') #conversation.ConnectTo('excel','[Classeur1]Feuil1') if (conversation.Connected() == 0): print "nnERROR: No connection possible." conversation.Shutdown() sys.exit() # end program
Je voudrais savoir si il est possible d'ouvrir une feuille Excel par un script python, de sélectionner des cellules, que celle sélection soit renvoyée au script et qu'il fasse des traitements sur la sélection.
Merci !
Amaury Forgeot d'Arc
Bonjour,
Je voudrais savoir si il est possible d'ouvrir une feuille Excel par un script python, de sélectionner des cellules, que celle sélection soit renvoyée au script et qu'il fasse des traitements sur la sélection.
Merci !
Voici un exemple de code que j'ai trouvé quelque part sur le Net : (j'en ai écrit d'autres, mais je ne suis pas sur la bonne machine)
import win32com.client excel = win32com.client.Dispatch("Excel.Application") excel.Visible = 1 k = self.excel.Workbooks.Add() v = k.Worksheets(1) v.Cells(1,1).Value = "Hello, World"
Les fonctions et objets disponibles sont très biens décrits... dans la doc d'Excel. Il y a en particulier une propriété qui renvoie la partie sélectionnée de la feuille courante (un truc du genre excel.CurrentSelection)
Par contre, en relisant ta question, je lis "sélectionner des cellules". Qui sélectionne ? Le script ou l'utilisateur ? Dans le second cas, ça peut être plus compliqué. Je crois que l'on peut cliquer pendant que le script tourne (ça peut d'ailleurs faire des trucs marrants). Il faudrait de faire attendre le script jusqu'à ce que l'utilisateur ait sélectionné la zone voulue. Tout le problème est maintenant dans le "jusqu'à"...
-- Amaury
Bonjour,
Je voudrais savoir si il est possible d'ouvrir une feuille Excel par un
script python, de sélectionner des cellules, que celle sélection soit
renvoyée au script et qu'il fasse des traitements sur la sélection.
Merci !
Voici un exemple de code que j'ai trouvé quelque part sur le Net :
(j'en ai écrit d'autres, mais je ne suis pas sur la bonne machine)
import win32com.client
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = 1
k = self.excel.Workbooks.Add()
v = k.Worksheets(1)
v.Cells(1,1).Value = "Hello, World"
Les fonctions et objets disponibles sont très biens décrits... dans la
doc d'Excel. Il y a en particulier une propriété qui renvoie la partie
sélectionnée de la feuille courante (un truc du genre
excel.CurrentSelection)
Par contre, en relisant ta question, je lis "sélectionner des cellules".
Qui sélectionne ? Le script ou l'utilisateur ? Dans le second cas, ça
peut être plus compliqué. Je crois que l'on peut cliquer pendant que le
script tourne (ça peut d'ailleurs faire des trucs marrants). Il faudrait
de faire attendre le script jusqu'à ce que l'utilisateur ait sélectionné
la zone voulue. Tout le problème est maintenant dans le "jusqu'à"...
Je voudrais savoir si il est possible d'ouvrir une feuille Excel par un script python, de sélectionner des cellules, que celle sélection soit renvoyée au script et qu'il fasse des traitements sur la sélection.
Merci !
Voici un exemple de code que j'ai trouvé quelque part sur le Net : (j'en ai écrit d'autres, mais je ne suis pas sur la bonne machine)
import win32com.client excel = win32com.client.Dispatch("Excel.Application") excel.Visible = 1 k = self.excel.Workbooks.Add() v = k.Worksheets(1) v.Cells(1,1).Value = "Hello, World"
Les fonctions et objets disponibles sont très biens décrits... dans la doc d'Excel. Il y a en particulier une propriété qui renvoie la partie sélectionnée de la feuille courante (un truc du genre excel.CurrentSelection)
Par contre, en relisant ta question, je lis "sélectionner des cellules". Qui sélectionne ? Le script ou l'utilisateur ? Dans le second cas, ça peut être plus compliqué. Je crois que l'on peut cliquer pendant que le script tourne (ça peut d'ailleurs faire des trucs marrants). Il faudrait de faire attendre le script jusqu'à ce que l'utilisateur ait sélectionné la zone voulue. Tout le problème est maintenant dans le "jusqu'à"...
-- Amaury
Bertrand
Merci pour ces réponses !
Voici le compoprtement que j'attend :
Le script ouvre un tableur excel avec plusieurs feuilles remplies de données Je selectionne à la souris une zone colonnes/cellules Je ferme le tableur (à préciser) La selection que j'ai faite est récupérée par le script et un traitement commence.
And voilà !
Bertrand
Bonjour,
Je voudrais savoir si il est possible d'ouvrir une feuille Excel par un script python, de sélectionner des cellules, que celle sélection soit renvoyée au script et qu'il fasse des traitements sur la sélection.
Merci !
Voici un exemple de code que j'ai trouvé quelque part sur le Net : (j'en ai écrit d'autres, mais je ne suis pas sur la bonne machine)
import win32com.client excel = win32com.client.Dispatch("Excel.Application") excel.Visible = 1 k = self.excel.Workbooks.Add() v = k.Worksheets(1) v.Cells(1,1).Value = "Hello, World"
Les fonctions et objets disponibles sont très biens décrits... dans la doc d'Excel. Il y a en particulier une propriété qui renvoie la partie sélectionnée de la feuille courante (un truc du genre excel.CurrentSelection)
Par contre, en relisant ta question, je lis "sélectionner des cellules". Qui sélectionne ? Le script ou l'utilisateur ? Dans le second cas, ça peut être plus compliqué. Je crois que l'on peut cliquer pendant que le script tourne (ça peut d'ailleurs faire des trucs marrants). Il faudrait de faire attendre le script jusqu'à ce que l'utilisateur ait sélectionné la zone voulue. Tout le problème est maintenant dans le "jusqu'à"...
Merci pour ces réponses !
Voici le compoprtement que j'attend :
Le script ouvre un tableur excel avec plusieurs feuilles remplies de données
Je selectionne à la souris une zone colonnes/cellules
Je ferme le tableur (à préciser)
La selection que j'ai faite est récupérée par le script et un traitement
commence.
And voilà !
Bertrand
Bonjour,
Je voudrais savoir si il est possible d'ouvrir une feuille Excel par
un script python, de sélectionner des cellules, que celle sélection
soit renvoyée au script et qu'il fasse des traitements sur la sélection.
Merci !
Voici un exemple de code que j'ai trouvé quelque part sur le Net :
(j'en ai écrit d'autres, mais je ne suis pas sur la bonne machine)
import win32com.client
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = 1
k = self.excel.Workbooks.Add()
v = k.Worksheets(1)
v.Cells(1,1).Value = "Hello, World"
Les fonctions et objets disponibles sont très biens décrits... dans la
doc d'Excel. Il y a en particulier une propriété qui renvoie la partie
sélectionnée de la feuille courante (un truc du genre
excel.CurrentSelection)
Par contre, en relisant ta question, je lis "sélectionner des cellules".
Qui sélectionne ? Le script ou l'utilisateur ? Dans le second cas, ça
peut être plus compliqué. Je crois que l'on peut cliquer pendant que le
script tourne (ça peut d'ailleurs faire des trucs marrants). Il faudrait
de faire attendre le script jusqu'à ce que l'utilisateur ait sélectionné
la zone voulue. Tout le problème est maintenant dans le "jusqu'à"...
Le script ouvre un tableur excel avec plusieurs feuilles remplies de données Je selectionne à la souris une zone colonnes/cellules Je ferme le tableur (à préciser) La selection que j'ai faite est récupérée par le script et un traitement commence.
And voilà !
Bertrand
Bonjour,
Je voudrais savoir si il est possible d'ouvrir une feuille Excel par un script python, de sélectionner des cellules, que celle sélection soit renvoyée au script et qu'il fasse des traitements sur la sélection.
Merci !
Voici un exemple de code que j'ai trouvé quelque part sur le Net : (j'en ai écrit d'autres, mais je ne suis pas sur la bonne machine)
import win32com.client excel = win32com.client.Dispatch("Excel.Application") excel.Visible = 1 k = self.excel.Workbooks.Add() v = k.Worksheets(1) v.Cells(1,1).Value = "Hello, World"
Les fonctions et objets disponibles sont très biens décrits... dans la doc d'Excel. Il y a en particulier une propriété qui renvoie la partie sélectionnée de la feuille courante (un truc du genre excel.CurrentSelection)
Par contre, en relisant ta question, je lis "sélectionner des cellules". Qui sélectionne ? Le script ou l'utilisateur ? Dans le second cas, ça peut être plus compliqué. Je crois que l'on peut cliquer pendant que le script tourne (ça peut d'ailleurs faire des trucs marrants). Il faudrait de faire attendre le script jusqu'à ce que l'utilisateur ait sélectionné la zone voulue. Tout le problème est maintenant dans le "jusqu'à"...
Méta-MCI
Bonjour !
La propriété Selection.Value de l'objet 'Excel.Application' devrait donner le résultat attendu.
@-salutations -- Michel Claveau
Bonjour !
La propriété Selection.Value de l'objet 'Excel.Application' devrait
donner le résultat attendu.
Mais alors à quel moment récupérer cette propriété ? A la fermeture du fichier ?
Bonjour !
La propriété Selection.Value de l'objet 'Excel.Application' devrait donner le résultat attendu.
@-salutations
Michel Claveau
Bonsoir !
Dans un cas similaire, je récupère la sélection toutes les secondes, jusqu'à ce qu'Excel soit fermé.
Autre genre d'utilisation, du même style : surveillance de Word. Dès que le contenu contient le mot "PERL" (dès que l'utilisateur a tapé ce mot, on le remplace, automatiquement, par "Python".
Si besoin, j'ai une classe toute prête, pour piloter Excel, depuis Python, via COM/Ole-automation.
-- @-salutations
Michel Claveau
Bonsoir !
Dans un cas similaire, je récupère la sélection toutes les secondes,
jusqu'à ce qu'Excel soit fermé.
Autre genre d'utilisation, du même style : surveillance de Word. Dès
que le contenu contient le mot "PERL" (dès que l'utilisateur a tapé ce
mot, on le remplace, automatiquement, par "Python".
Si besoin, j'ai une classe toute prête, pour piloter Excel, depuis
Python, via COM/Ole-automation.
Dans un cas similaire, je récupère la sélection toutes les secondes, jusqu'à ce qu'Excel soit fermé.
Autre genre d'utilisation, du même style : surveillance de Word. Dès que le contenu contient le mot "PERL" (dès que l'utilisateur a tapé ce mot, on le remplace, automatiquement, par "Python".
Si besoin, j'ai une classe toute prête, pour piloter Excel, depuis Python, via COM/Ole-automation.
-- @-salutations
Michel Claveau
Bertrand
Et on peut imaginer une macro excel qui renvoie la valeur de la selection ? Mais on sort de python ...
Bonsoir !
Dans un cas similaire, je récupère la sélection toutes les secondes, jusqu'à ce qu'Excel soit fermé.
Autre genre d'utilisation, du même style : surveillance de Word. Dès que le contenu contient le mot "PERL" (dès que l'utilisateur a tapé ce mot, on le remplace, automatiquement, par "Python".
Si besoin, j'ai une classe toute prête, pour piloter Excel, depuis Python, via COM/Ole-automation.
Et on peut imaginer une macro excel qui renvoie la valeur de la selection ?
Mais on sort de python ...
Bonsoir !
Dans un cas similaire, je récupère la sélection toutes les secondes,
jusqu'à ce qu'Excel soit fermé.
Autre genre d'utilisation, du même style : surveillance de Word. Dès que
le contenu contient le mot "PERL" (dès que l'utilisateur a tapé ce mot,
on le remplace, automatiquement, par "Python".
Si besoin, j'ai une classe toute prête, pour piloter Excel, depuis
Python, via COM/Ole-automation.
Et on peut imaginer une macro excel qui renvoie la valeur de la selection ? Mais on sort de python ...
Bonsoir !
Dans un cas similaire, je récupère la sélection toutes les secondes, jusqu'à ce qu'Excel soit fermé.
Autre genre d'utilisation, du même style : surveillance de Word. Dès que le contenu contient le mot "PERL" (dès que l'utilisateur a tapé ce mot, on le remplace, automatiquement, par "Python".
Si besoin, j'ai une classe toute prête, pour piloter Excel, depuis Python, via COM/Ole-automation.
Méta-MCI
Bonsoir !
Et on peut imaginer une macro excel qui renvoie la valeur de la selection ?
Oui, de plusieurs manières.
Par exemple, moi qui aime bien Python sous windows, j'ai un petit serveur, qui se lance au démarrage, accessible de multiples façons, et qui peut servir de "mémoire commune" entre de nombreuses applications. Une macro Excel peut très bien y accéder via COM, pour y stocker des données, ou pour exécuter des fonctions (autrement dit "comment ajouter des fonctions Python à VBA"). Mais ce serveur est accessible par TCP/IP, par mmap, par le presse-papier, par fichier, par e-mail, etc.
@-salutations
Michel Claveau
Bonsoir !
Et on peut imaginer une macro excel qui renvoie la valeur de la
selection ?
Oui, de plusieurs manières.
Par exemple, moi qui aime bien Python sous windows, j'ai un petit serveur,
qui se lance au démarrage, accessible de multiples façons, et qui peut
servir de "mémoire commune" entre de nombreuses applications.
Une macro Excel peut très bien y accéder via COM, pour y stocker des
données, ou pour exécuter des fonctions (autrement dit "comment ajouter des
fonctions Python à VBA").
Mais ce serveur est accessible par TCP/IP, par mmap, par le presse-papier,
par fichier, par e-mail, etc.
Et on peut imaginer une macro excel qui renvoie la valeur de la selection ?
Oui, de plusieurs manières.
Par exemple, moi qui aime bien Python sous windows, j'ai un petit serveur, qui se lance au démarrage, accessible de multiples façons, et qui peut servir de "mémoire commune" entre de nombreuses applications. Une macro Excel peut très bien y accéder via COM, pour y stocker des données, ou pour exécuter des fonctions (autrement dit "comment ajouter des fonctions Python à VBA"). Mais ce serveur est accessible par TCP/IP, par mmap, par le presse-papier, par fichier, par e-mail, etc.