Sam & Max » xls http://sametmax.com Du code, du cul Sat, 07 Nov 2015 10:56:13 +0000 en-US hourly 1 http://wordpress.org/?v=4.1 Lire et écrire dans un fichier XLS avec Python 10 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
 
workbook.save(path)

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/ 10