Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/09/2017, à 16:27

mod77

ecrire valeur dans excel via script

Bonjour,

J'ai lu ceci https://forum.ubuntu-fr.org/viewtopic.p … #p21799546
et souhaite savoir s'il est possible d'écrire une valeur dans une cellule excel svp? ou d'exécuter une macro svp?

Merci

Hors ligne

#2 Le 22/09/2017, à 20:32

J5012

Re : ecrire valeur dans excel via script

si tu t'etais rendu à l'adresse indiquee ? → https://xlsxwriter.readthedocs.io/examp … ml#ex-demo

Hors ligne

#3 Le 23/09/2017, à 16:13

mod77

Re : ecrire valeur dans excel via script

smile super!

merci, je vais essayer de me débrouiller avec ;-)

Hors ligne

#4 Le 23/09/2017, à 16:52

mod77

Re : ecrire valeur dans excel via script

J'ai essayé de faire à ma sauce mais, étant débutant, je ne sais pas comment exécuter mon code.
Est-ce dans un terminal ?

j'ai écris ceci:

#!/bin/bash

/usr/bin/python <<'EOF'
import xlsxwriter

workbook = xlsxwriter.Workbook ('demo.xlsx')
worksheet = workbook.add_worksheet ()
worksheet.write('A1', 'Hello')
worksheet .write(2, 0, 1)
workbook.close()
 
EOF

Hors ligne

#5 Le 24/09/2017, à 20:43

J5012

Re : ecrire valeur dans excel via script

non c'est un script bash qui appelle un script python, ou directement un script python qui s'auto-execute comme un script bash, l'astuce ou la regle (parce que c'est une regle systeme) :

#!/bin/python

au debut du script pour signaler au systeme q'il s'agit d'un script python auto-executable (avec la coche dans les proprietes du fichier par nautilus)

Hors ligne

#6 Le 24/09/2017, à 21:38

mod77

Re : ecrire valeur dans excel via script

Donc mon code est bon si je l'écris comme ça:

#!/bin/python

/usr/bin/python <<'EOF'
import xlsxwriter

workbook = xlsxwriter.Workbook ('demo.xlsx')
worksheet = workbook.add_worksheet ()
worksheet.write('A1', 'Hello')
worksheet .write(2, 0, 1)
workbook.close()
 
EOF

Mais avec quoi je dois l'ouvrir dans propriété, svp? y a pas nautilus.

Hors ligne

#7 Le 24/09/2017, à 22:05

Compte anonymisé

Re : ecrire valeur dans excel via script

plutôt :

#!/bin/python
import xlsxwriter

workbook = xlsxwriter.Workbook ('demo.xlsx')
worksheet = workbook.add_worksheet ()
worksheet.write('A1', 'Hello')
worksheet .write(2, 0, 1)
workbook.close()

pour installer (comme je sais pas quel python tu utilises) :

sudo apt install python3-xlsxwriter python-xlsxwriter

par contre, a moins que ton but c'est écrire "hello" sur la première case et 1 sur la 3ième, d'un fichier qui s'appelle "demo.xlsx", le script me parait pas encore au point.

Si tu veux l'utiliser dans nautilus, tu peux placer le script dans ~/.local/share/nautilus/scripts (ne pas oublier de le rendre exécutable), et tu pourras avec un clique droit sur fichiers choisir le script dans le menu "scripts"

si tu veux l'utiliser avec le terminal il faut le placer dans un dossier contenu dans la variable système $PATH (ou taper le chemin vers l’exécutable)

#8 Le 25/09/2017, à 10:42

mod77

Re : ecrire valeur dans excel via script

Bonjour et merci de m'aider,

A la base  je ne sais pas quel python j'utilise.
J'ai ubuntu et souhaite écrire dans une colonne d'un fichier excel.
J'ai trouvé ce script et souhaite l'adapter pour réaliser mon but.

Le code c'est un peu du chinois pour moi, mais j'essaie.

A la place du message 'hello', il y aura une variable qui changera de valeur (nombre) et idem pour l'autre affichage.

Hors ligne

#9 Le 25/09/2017, à 18:19

Compte anonymisé

Re : ecrire valeur dans excel via script

pour savoir quel python tu utilises (au final ça changera pas grand chose au code, c'est juste pour le paquet à installer)

python --version

je te propose ce code pour une version console :

#!/bin/python
import xlsxwriter
import sys

workbook = xlsxwriter.Workbook (sys.argv[1])
worksheet = workbook.add_worksheet ()
worksheet.write(sys.argv[2], sys.argv[3])
workbook.close()

ensuite il suffit de l’exécuter comme ça :

python nomduscript.py fichier.xlsx A2 valeur

ce qui écrit "valeur" dans la case A2 du fichier.xlsx (dans l'onglet courant je suppose)

Dernière modification par Compte anonymisé (Le 25/09/2017, à 18:21)

#10 Le 25/09/2017, à 22:25

mod77

Re : ecrire valeur dans excel via script

j'ai la version 2.7.12 de python

J'ai essayé ton code mais message d'erreur:
python can't open file 'essai.py' : [Errno 2] No such file or directory

Hors ligne

#11 Le 25/09/2017, à 22:54

alex2423

Re : ecrire valeur dans excel via script

Je n'y connais rien en python mais le message d'erreur est assez explicite et est un grand classique !

Tape la commande suivante pour voir

ls totototo
python can't open file 'essai.py' : [Errno 2] No such file or directory

Ta commande te raconte que python ne peut pas ouvrir le fichier.
No => aucun
such => tel
file => fichier
Auncun tel fichier ou répertoire.

La solution : s'assurer que le fichier que tu passes en paramètre à python est bien présent
Tape la commande :

ls essai.py
ou 
ls

Je te parie que tu n'es pas dans le bon répertoire ou se trouve ton fichier py

Hors ligne

#12 Le 26/09/2017, à 06:07

mod77

Re : ecrire valeur dans excel via script

alex2423,
merci de ta traduction, mais si j'ai écris le message d'erreur c'est pour que celui qui m'a donner le code puisse savoir exactement le message que j'ai suite à son code ;-)
car je pensais que son code créait le fichier (dans le répertoire courant).

Ce qui m'amène justement à 2 questions pour Compte anonymisé:

1) puis-je indiquer le chemin où est le fichier ? comment stp?

2) puis-je écrire dans un fichier excel déjà et toujours ouvert ? comment stp?

Dernière modification par cqfd93 (Le 03/05/2018, à 21:22)

Hors ligne

#13 Le 26/09/2017, à 17:29

Compte anonymisé

Re : ecrire valeur dans excel via script

j'ai oublié de préciser qu'il faut être dans le dossier du script si on l'appelle comme ça

Le plus simple c'est que tu mets ton script dans le même dossier que tes fichiers excel

tu te place dans le dossier en question (avec la commande cd), et tu lances la commande comme cité précédemment.

Pour répondre à tes questions :

1) oui, si le fichier est pas dans le dossier courant il faut lui indiquer le chemin (soit absolu /home/tonnom/tondossier/tonfichier, soit relatif tondossier/tonfichier)

2) déjà ouvert ? tu veux dire déjà existant ? oui tu peux, c'était le but
non ? Tu peux aussi créer un tableau de toute pièce avec ce script.

Dernière modification par Compte anonymisé (Le 26/09/2017, à 17:30)

#14 Le 26/09/2017, à 18:14

mod77

Re : ecrire valeur dans excel via script

Le truc c'est que je ne peux pas mettre les 2 dans le même dossier. Pour des raisons trop compliquées à expliquer.
Par contre, j'ai le chemin absolu "D:\dossier1\..\essai.xlsx"
Dans ce cas, comment je spécifie dans ton code ce chemin absolu stp?
Non seulement mon fichier existe mais en plus au moment où je lance le script il est ouvert en attente des infos susceptible d'être envoyées par le script en question.
Il devra écrire dans la colonne Q6 à Q156 pour être précis smile

Hors ligne

#15 Le 26/09/2017, à 18:37

Compte anonymisé

Re : ecrire valeur dans excel via script

tu es sur Windows ? ton chemin semble être un chemin windows (nom de lecture et anti-slash), pour savoir où es ton fichier tu peux faire un clic droite avec ton navigateur de fichier et tu fais propriété et le chemin apparaît

Après je comprends pas trop la difficulté, tu peux mettre ton fichier excel et ton script n'importe où, exemple :

python /dossier1/dossier2/monscript.py /dossier3/dossier4/fichierexcel.xlsx Q6 valeur

si le chemin commence par / il est absolu, sinon il dépend du dossier actuel.

Après je me suis planté, finalement il ne peut modifier de fichier existant, il faut crée l'intégralité du fichier avec le script.

site officiel a écrit :

XlsxWriter can only create new files. It cannot read or modify existing files.

il faut trouver autre chose si tu veux modifier un fichier existant (bon pour l'instant je comprends pas grand chose à ce que tu veux faire, mettre des valeurs dans des cases, mais qui dépendent de quoi ?)

Dernière modification par Compte anonymisé (Le 26/09/2017, à 18:39)

#16 Le 26/09/2017, à 19:04

mod77

Re : ecrire valeur dans excel via script

D'accord, je vais essayer avec le chemin comme tu l'indique. c'est cool:) on a rien a changer. Merci.
Ce n'est pas grave si on doit créer le fichier excel, il me semblait bien que tu le créais avec l'instruction

worksheet = workbook.add_worksheet ()

j'explique ce que je fais:
je travaille sous windows avec excel et j'exécute un script sous unbuntu via une VM. Ce script me renvoie des infos (150) (nombre 1, valeur 1) via un fichier .CSV.
J'affiche ces infos, ensuite, dans la colonne Q6 à Q156.
Mais si je peux, grâce à toi et ton script, renvoyer directement ces infos dans mon fichier excel c'est mieux ;-)

Hors ligne

#17 Le 26/09/2017, à 20:36

alex2423

Re : ecrire valeur dans excel via script

mod77 a écrit :

alex2423,
merci de ta traduction, mais si j'ai écris le message d'erreur c'est pour que celui qui m'a donner le code puisse savoir exactement le message que j'ai suite à son code ;-)
car je pensais que son code créait le fichier (dans le répertoire courant).

Pas de problème. En fait je me suis permis de te répondre parce que le message était assez explicite. C'est interessant de pouvoir comprendre ce qu'il nous arrive lorsque nous sommes face à un message d'erreur et de pouvoir débloquer la situation tout seul. Je voulais juste t'apprendre à pécher.


mod77 a écrit :

car je pensais que son code créait le fichier (dans le répertoire courant).

Je pense que tu voulais parler de la création du fichier excel *.xlsx mais en l’occurrence ta commande que tu as exécuté 

python nomduscript.py fichier.xlsx A2 valeur

te disait comme erreur qu'elle n'arrivait pas à trouver le fichier "nomduscript.py" :

python can't open file 'essai.py' : [Errno 2] No such file or directory

soit le fichier .py de script que tu as précédemment créé avec le code indiqué par Anonyme et non pas le fichier Excel.

Désolé d'être relou la dessus, d'insister mais c'est pour ton bien smile


mod77 a écrit :

Ce qui m'amène justement à 2 questions pour Compte anonymisé:

1) puis-je indiquer le chemin où est le fichier ? comment stp?

Toujours et pour n'importe quelle commande Linux dès que tu indique un fichier d'entrée (soit on se positionne dans le meme répertoire, soit un préciser le chemin du fichier)

Dernière modification par cqfd93 (Le 03/05/2018, à 21:23)

Hors ligne

#18 Le 26/09/2017, à 21:08

mod77

Re : ecrire valeur dans excel via script

alex2423,
Ta réponse est pertinente car je pensais qu'il ne trouvait pas le fichier .xslx
et comme je l'ai écris au poste 16, cette ligne crée -t-elle le fichier excel ou pas finalement?

Hors ligne

#19 Le 26/09/2017, à 21:48

alex2423

Re : ecrire valeur dans excel via script

mod77, et oui, ton ordinateur te parlait du fichier .py qu'il n'a réussi à le trouver. Il faut lire ce que te dit ton ordinateur wink Il faut l'écouter

[HS]
Je ne connais pas du tout python, mais je dirais que ta commande ne créé par le fichier mais créé un onglet. Quand tu as Excel en anglais (cela aide pas mal à assimiler les termes en anglais, pratique pour trouver des infos sur le net ) se dit sheet, je dis que worksheet, c'est à peu près pareil. 
[/HS]
J'ai trouvé une page de documentation qui confirme ce qu'a indiqué Anonyme.
http://xlsxwriter.readthedocs.io/workbook.html

Bref, je ne comprends pas la difficulté.
Fais déjà un premier test en lancant son script à partir du répertoire ou se trouve le script py. Pour te positionner tu utilises la commande "cd"

python nomduscript.py fichier.xlsx A2 valeur

Tu constateras ou non si cela écrit bien la valeur "valeur" dans la cellule A2 dans le fichier fichier.xlsx. Après tu pourras passer à l'étape suivante

Hors ligne

#20 Le 26/09/2017, à 21:51

mod77

Re : ecrire valeur dans excel via script

oui, c'est ce que je comptais faire. merci

Hors ligne

#21 Le 27/09/2017, à 07:33

Compte anonymisé

Re : ecrire valeur dans excel via script

Le worksheet est obligatoire pour pouvoir écrire avec xlsxwriter

site officiel a écrit :

At least one worksheet should be added to a new workbook

#!/bin/python
import xlsxwriter
import sys

workbook = xlsxwriter.Workbook (sys.argv[1])
worksheet = workbook.add_worksheet ()
i=2

while len(sys.argv) > i:
	worksheet.write(sys.argv[i], sys.argv[i+1])
	i += 2

workbook.close()

avec ce code tu pourras faire

python fichier.xlsx A1 valeur A2 autrevaleur A3 encoreautrevaleur ...

Par contre je pense qu'il faut que tu regardes du côté des fichiers CSV à la place des fichiers Excel qui me semble plus approprié pour travailler avec des scripts.