xls – Sam & Max http://sametmax.com Du code, du cul Wed, 30 Oct 2019 15:34:04 +0000 en-US hourly 1 https://wordpress.org/?v=4.9.7 32490438 Lire et écrire dans un fichier XLS avec Python http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/ http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/#comments Thu, 18 Apr 2013 18:49:28 +0000 http://sametmax.com/?p=5793 ]]> < Insérer ici vous-même troll sur Microsoft et LibreOffice et les formats >

Puis, une fois cette corvée administrative remplie, faites un pip install:

pip install xlutils

Ceci va installer deux lib dont on va avoir besoin : xlrd pour la lecture, et xlwt pour l’écriture.

Ensuite c’est très simple…

Pour écrire dans un fichier Excel :

import xlrd

from xlwt import Workbook, Formula

path = r"C:\chemin\vers\fichier.xls"

# On créer un "classeur"
classeur = Workbook()
# On ajoute une feuille au classeur
feuille = classeur.add_sheet("OCB")

# Ecrire "1" dans la cellule à la ligne 0 et la colonne 0
feuille.write(0, 0, 1)
# Ecrire "2" dans la cellule à la ligne 0 et la colonne 1
feuille.write(0, 1, 2)
# Ecrire une formule dans la cellule à la ligne 0 et la colonne 2
# qui va additioner les deux autres cellules
feuille.write(0, 2, Formula('A1+B1'))

# Ecriture du classeur sur le disque
classeur.save(path)

print u"Fichier créé: {}".format(path)
## Fichier créé: C:\chemin\vers\fichier.xls


Ce qui nous pond un truc comme ça.

Et pour lire ce même fichier :

import xlrd

# Réouverture du classeur
classeur = xlrd.open_workbook(path)

# Récupération du nom de toutes les feuilles sous forme de liste
nom_des_feuilles = classeur.sheet_names()

# Récupération de la première feuille
feuille = classeur.sheet_by_name(nom_des_feuilles[0])

print u"Lecture des cellules:"
print "A1: {}".format(feuille.cell_value(0, 0))
print "B1: {}".format(feuille.cell_value(0, 1))
# On ne peut pas lire les les valeurs des cellules avec formules
print "C1: {}".format(feuille.cell_value(0, 2))
## Lecture des cellules:
## A1: 1.0
## B1: 2.0
## C1:

Comme vous pouvez le voir à la dernière ligne, lire une cellule avec une formule ne revoit rien. L’auteur de la lib explique en effet que les formules sont stockées sous forme de bytecode et qu’il faudrait les décompiler pour obtenir le texte original.

Il existe d’autres manières d’accéder à des fichiers XLS, puis puissantes mais aussi beaucoup plus contraignantes :


Télécharger le code de l’article

]]>
http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/feed/ 12 5793