Ecriture de de données au format xlsx
openpyxl - A Python library to read/write Excel 2010
Méthode : Ecriture d'un fichier Excel en utilisant les références des cellules
Après avoir importé la bibliothèque openpyxl, on crée un classeur Excel avec la commande :
classeur = openpyxl.Workbook()
Un classeur est composé d'une ou plusieurs feuilles (les onglets). On va insérer de cellules dans la feuille du classeur, unique à la création, on sélectionne la feuille :
feuille = classeur.active
On écrit les valeurs dans les cellules d'une feuille en utilisant l'opérateur [] avec en indice la position de la cellule donnée sous forme de chaine de caractères :
feuille['A1'] = 'Image'
On peut insérer une formule dans la feuille en utilisant la notation d'Excel :
feuille['B4'] = "=B2 * B3"
L'ensemble du code est le suivant :
import openpyxl
classeur = openpyxl.Workbook()
feuille = classeur.active
feuille['A1'] = 'Image'
feuille['B1'] = 'butterfly.jpg'
feuille['A2'] = 'largeur'
feuille['B2'] = 493
feuille['A3'] = 'hauteur'
feuille['B3'] = 356
feuille['A4'] = 'Nombre de pixels'
feuille['B4'] = "=B2 * B3"
classeur.save("c:/tmp/ImageInfo.xlsx")
Par défaut l'ongle s'appelle 'Sheet ». On peut le renommer en insérant après la ligne 4 les instructions pythons suivantes :
feuille.title = 'butterfly'
Méthode : Ecriture dans les cellules d'une feuille Excel en utilisant les indices de ligne et de colonne des cellules
La cellule B4 est en colonne est en ligne 4 et colonne 2. On écrit la valeur dans cette cellule de la feuille en utilisant la méthode cell en donnant la valeur de la ligne pour l'argument nommé row et la valeur de la colonne pour l'argument nommé column.
feuille.cell(row=4, column=2, value='=B2 * B3')
L'ensemble du code est le suivant :
import openpyxl
classeur = openpyxl.Workbook()
feuille = classeur.active
feuille.cell(row=1, column=1, value='Image')
feuille.cell(row=1, column=2, value='butterfly.jpg')
feuille.cell(row=2, column=1, value='largeur')
feuille.cell(row=2, column=2, value=493)
feuille.cell(row=3, column=1, value='hauteur')
feuille.cell(row=3, column=2, value=56)
feuille.cell(row=4, column=1, value='Nombre de pixels')
feuille.cell(row=4, column=2, value="=B2 * B3")
classeur.save("c:/tmp/ImageInfo.xlsx")
Attention :
Attention, si vous insérez une formule celle-ci doit être en anglais exemple SUM pour SOMME, MEAN pour MOYENNE et les arguments de la fonction sont séparés par des virgules (pas par des points virgules)