48 votes

analyse de documents excel avec python

Je veux analyser un document Excel pour en faire des listes en Python. Existe-t-il une bibliothèque Python utile pour cette action ? Et quelles sont les fonctions pertinentes dans cette bibliothèque ?

51voto

Mark Gemmill Points 2851

Le meilleur moyen d'analyser les fichiers Excel est d'utiliser le programme xlrd bibliothèque. Les python-excel.org contient des liens et des exemples pour xlrd et les bibliothèques excel en python qui y sont liées, y compris une bibliothèque document pdf qui contient de bons exemples d'utilisation de xlrd. Bien sûr, il y a aussi beaucoup de questions connexes sur le xlrd sur StackOverflow qui pourraient être utiles.

La bibliothèque xlrd présente un inconvénient : elle ne fonctionne qu'avec les logiciels xls (Excel 2003 et versions antérieures d'Excel) et non les plus récents formats de fichier xlsx format de fichier. Il existe une bibliothèque plus récente openpyxl pour faire face à la xlsx mais je ne l'ai jamais utilisé.

MISE À JOUR : Conformément au commentaire de John, le xlrd prend désormais en charge les deux types de xls y xlsx formats de fichiers.

J'espère que cela vous aidera.

28voto

wordsforthewise Points 2907

En bibliothèque pandas dispose d'un moyen rapide et facile de lire excel. S'il s'agit principalement de données et de rien de trop compliqué, cela fonctionnera :

import pandas as pd
ex_data = pd.read_excel('excel_file.xlsx')

Il le lit dans un pandas DataFrame ce qui est pratique pour l'extraction de données, etc.

Pour accéder à une liste :

ex_data['column1_name'].values.tolist()

Si vous avez plusieurs tableaux et éléments dans chaque feuille de calcul, vous pouvez utiliser une autre bibliothèque telle que xlrd ou openpyxl.

10voto

Ryu_hayabusa Points 352

Openpyxl est une excellente bibliothèque qui prend en charge la lecture et l'écriture des fichiers xlsx 2010.

exemple de code d'analyse syntaxique

from openpyxl import load_workbook
wb = load_workbook('Book1.xlsx')
ws = wb.active
for row in ws.iter_rows():
   for cell in row:
     print cell.value

exemple de code d'écriture

from openpyxl import Workbook
from openpyxl.utils import get_column_letter

wb = Workbook()

dest_filename = 'empty_book.xlsx'

ws1 = wb.active
ws1.title = "range names"

for row in range(1, 40):
    ws1.append(range(600))
wb.save(filename = dest_filename)

Pour en savoir plus, cliquez ici : https://openpyxl.readthedocs.io/en/stable/index.html

5voto

James Atwood Points 58

Xlrd est parfait pour les tâches simples, mais si vous avez besoin de travailler avec des fonctionnalités plus profondes d'Excel (macros, tracés avancés, etc.) et que vous travaillez sur une machine Windows, vous pouvez utiliser la bibliothèque pywin32 pour contrôler la couche win32com. Cela permet d'accéder à presque tout ce qui peut être contrôlé par des macros / Visual Basic.

0voto

Vader Points 864

Si vous voulez analyser xlsx essayer python-xlsx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X