> Modules non standards > Autres modules non standards > xlrd (lecture des fichiers excel)
xlrd (lecture des fichiers excel)
import xlrd : pour importer le module.
Lecture d'un fichier :
- myBook = xlrd.open_workbook('myFile.xls') : lit le fichier et renvoie un objet de type xlrd.Book.
- attention, si on veut accéder aux informations de formattage des cellules, il faut faire : myBook = xlrd.open_workbook('myFile.xls', formatting_info = True)
- myBook.sheets() : renvoie les feuilles du fichier sous forme de liste (objets xlrd.sheet.Sheet).
- myBook.sheet_names() : renvoie les noms des feuilles du fichier sous forme de liste.
- myBook.sheet_by_index(0) : renvoie la première feuille.
- myBook.sheet_by_name('Feuill1') : renvoie la feuille de nom indiqué.
Méthodes sur les objets Sheet (feuilles) :
- mySheet.name : le nom de la feuille.
- mySheet.nrows et mySheet.ncols : le nombre de lignes et de colonnes du fichier.
- mySheet.row(0) : renvoie la première ligne sous forme de liste des valeurs de type xlrd.sheet.Cell.
- mySheet.col(0) : renvoie la première colonne sous forme de liste des valeurs de type xlrd.sheet.Cell.
- mySheet.cell_value(5, 1) : la valeur à la ligne 6 et la colonne 2 (origine à 0).
- mySheet.cell_type(5, 1) : le type de la valeur à la ligne 6 et la colonne 2 (origine à 0).
- 0 (xlrd.XL_CELL_EMPTY) si vide.
- 1 (xlrd.XL_CELL_TEXT) si texte unicode.
- 2 (xlrd.XL_CELL_NUMBER) si float.
- 3 (xlrd.XL_CELL_DATE) si date (donne un float en python).
- 4 (xlrd.XL_CELL_BOOLEAN) si booléen.
- 5 (xlrd.XL_CELL_ERROR) si erreur.
- mySheet.cell(5, 1) : la cellule à la ligne 6 et la colonne 2 (origine à 0), objet de type xlrd.sheet.Cell.
Méthodes sur les objets xlrd.sheet.Cell :
- myCell.value : renvoie la valeur.
- myCell.ctype : donne le type de la cellule (0 à 5)
- myCell.xf_index : renvoie l'index de formattage, voir ci-dessous.
Pour récupérer une date dans une cellule :
- cellType = mySheet.cell_type(rowInd, colInd) : permet de récuperer le type de la cellule et de savoir si c'est une date : cellType == xlrd.sheet.XL_CELL_DATE
- une fois qu'on sait que c'est une date, faire : datetime.datetime(* xlrd.xldate.xldate_as_tuple(myCellValue, myBook.datemode)) avec myCellValue = mySheet.cell_value(rowInd, colInd)
Méthodes pour accéder au formattage :
- myCell.xf_index : donne le numéro du formattage d'une cellule, par exemple 28.
- à partir de ce numéro, on peut récupérer l'objet de formattage : myFormatting = myBook.xf_list[28] : donne un objet de la classe xlrd.formatting.XF.
- l'objet de formattage contient toute l'info pour savoir comment la cellule est formattée par exemple :
- myBook.colour_map[myFormatting.background.pattern_colour_index] : renvoie les valeurs RGB de la cellule (semble être pattern_colour_index plutôt que background_colour_index).
- myBook.font_list[myFormatting.font_index].weight : renvoie la graisse de la police, pour savoir si c'est en gras ou non.
Cellules fusionnées :
- sheet.merged_cells : la liste des fusions de cellules (merge), chaque élément étant un quadruplet (rowMin, rowMax + 1, colMin, colMax + 1).
- La valeur qui est affichée dans le fichier excel est celle de (rowMin, colMin), à moins que celle-ci ne soit vide (alors c'est la première cellule non vide en partant de (rowMin, colMin) et en allant de droite à gauche puis de haut en bas.
xlrd.dump('fileName.xls') : imprime les records du Binary Interchange File Format d'un fichier excel.
Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert