web-dev-qa-db-fra.com

comment ouvrir un fichier xlsx avec Python 3

J'ai un fichier xlsx avec 1 feuille. J'essaie de l'ouvrir en utilisant python 3 (xlrd lib), mais j'ai un fichier vide!

J'utilise ce code:

file_errors_location = "C:\\Users\\atheelm\\Documents\\python Excel mission\\errors1.xlsx"
workbook_errors = xlrd.open_workbook(file_errors_location)

et je n'ai aucune erreur, mais quand je tape:

workbook_errors.nsheets

Je reçois "0", même le fichier contient des feuilles ... quand je tape:

workbook_errors 

Je reçois:

xlrd.book.Book object at 0x2..

de l'aide? Merci

6
Atheel Massalha

Il existe deux modules pour lire le fichier xls: openpyxl et xlrd 

Ce script vous permet de transformer une donnée Excel en une liste de dictionnaires utilisant xlrd

import xlrd

workbook = xlrd.open_workbook('C:\\Users\\atheelm\\Documents\\python Excel mission\\errors1.xlsx')
workbook = xlrd.open_workbook('C:\\Users\\atheelm\\Documents\\python Excel mission\\errors1.xlsx', on_demand = True)
worksheet = workbook.sheet_by_index(0)
first_row = [] # The row where we stock the name of the column
for col in range(worksheet.ncols):
    first_row.append( worksheet.cell_value(0,col) )
# tronsform the workbook to a list of dictionnary
data =[]
for row in range(1, worksheet.nrows):
    Elm = {}
    for col in range(worksheet.ncols):
        Elm[first_row[col]]=worksheet.cell_value(row,col)
    data.append(Elm)
print data
2
khelili miliana

Vous pouvez utiliser les Pandas pandas.read_Excel comme pandas.read_csv:

import pandas as pd
file_errors_location = 'C:\\Users\\atheelm\\Documents\\python Excel mission\\errors1.xlsx'
df = pd.read_Excel(file_errors_location)
print(df)
1
Eric Muckley