Comment lire un fichier microsoft excel avec python ?

08 mars 2019    /    Viewed: 20943    /    Comments: 0    /    Edit


Pour lire un fichier excel avec python il existe le module xlrd. Exemple avec un fichier intitulé 'read_excel_file_with_python.xlsx':

Comment lire un fichier excel avec python ?

Lire le nom des feuilles excel:

import xlrd
import numpy as np

workbook = xlrd.open_workbook('read_excel_file_with_python.xlsx')
SheetNameList = workbook.sheet_names()
for i in np.arange( len(SheetNameList) ):
    print( SheetNameList[i] )

ici le document comprend deux feuilles:

Personal Data
Public Data

Sélectionner une feuille excel:

worksheet = workbook.sheet_by_name(SheetNameList[0])
num_rows = worksheet.nrows 
num_cells = worksheet.ncols 
print( 'num_rows, num_cells', num_rows, num_cells )

donne

num_rows, num_cells 6 4

Lire une feuille excel

curr_row = 0
while curr_row < num_rows:
    row = worksheet.row(curr_row)
    #print row, len(row), row[0], row[1]
    print( 'Row: ', curr_row )
    print( row, len(row), row[0] )
    curr_cell = 0
    while curr_cell < num_cells:
        # Cell Types: 0=Empty, 1=Text, 2=Number, 3=Date, 4=Boolean, 5=Error, 6=Blank
        cell_type = worksheet.cell_type(curr_row, curr_cell)
        cell_value = worksheet.cell_value(curr_row, curr_cell)
        print( ' ', cell_type, ':', cell_value )
        curr_cell += 1
    curr_row += 1

donne

    Row:  0
[text:'First Name', text:'Last Name', text:'Age', text:'Height'] 4 text:'First Name'
  1 : First Name
  1 : Last Name
  1 : Age
  1 : Height
Row:  1
[text:'John', text:'Doe', number:24.0, number:190.0] 4 text:'John'
  1 : John
  1 : Doe
  2 : 24.0
  2 : 190.0
Row:  2
[text:'Elijah', text:'Baley', number:31.0, number:169.0] 4 text:'Elijah'
  1 : Elijah
  1 : Baley
  2 : 31.0
  2 : 169.0
Row:  3
[text:'Paul', text:'Edison', number:22.0, number:185.0] 4 text:'Paul'
  1 : Paul
  1 : Edison
  2 : 22.0
  2 : 185.0
Row:  4
[text:'Martin', text:'Cage', number:41.0, number:176.0] 4 text:'Martin'
  1 : Martin
  1 : Cage
  2 : 41.0
  2 : 176.0
Row:  5
[text:'Robert', text:'Lemon', number:32.0, number:195.0] 4 text:'Robert'
  1 : Robert
  1 : Lemon
  2 : 32.0
  2 : 195.0

Références

Liens Site
xlrd pypi.org
Lien externe How to read els file in python ? youlikeprogramming.com
Python - Write to Excel Spreadsheet stackoverflow


Card image cap
profile-image
Daidalos

Je développe le présent site avec le framework python Django. Je m'intéresse aussi actuellement dans le cadre de mon travail au machine learning pour plusieurs projets (voir par exemple) et toutes suggestions ou commentaires sont les bienvenus !