web-dev-qa-db-fra.com

analyser des documents Excel avec python

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

43
tomermes

Vous êtes mieux placé pour analyser les fichiers Excel serait la bibliothèque xlrd . Le site python-Excel.org contient des liens et des exemples pour xlrd et les python bibliothèques Excel, y compris un pdf document qui a de bons exemples d'utilisation de xlrd. Bien sûr, il y a aussi beaucoup de questions xlrd liées sur StackOverflow qui pourraient être utiles.

Une mise en garde avec la bibliothèque xlrd est qu'elle ne fonctionnera qu'avec les formats de fichier xls (Excel 2003 et versions antérieures d'Excel) et non avec le format de fichier xlsx plus récent. Il existe une bibliothèque plus récente openpyxl pour gérer le xlsx, mais je ne l'ai jamais utilisée.

[~ # ~] mise à jour [~ # ~] : selon le commentaire de John, la bibliothèque xlrd prend désormais en charge les deux Formats de fichier xls et xlsx.

J'espère que ça t'as aidé.

43
Mark Gemmill

La bibliothèque pandas a un moyen rapide et facile de lire Excel. Si ce sont principalement des données et 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 le munging de données, etc.

Pour accéder à une liste:

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

Si vous avez plusieurs tables et éléments dans chaque feuille de calcul, vous souhaiterez peut-être utiliser une autre bibliothèque telle que xlrd ou openpyxl.

10
wordsforthewise

openpyxl est une excellente bibliothèque et prend en charge la lecture/écriture des fichiers xlsx 2010.

exemple de code d'analyse

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)

vous pouvez en savoir plus ici: https://openpyxl.readthedocs.io/en/stable/index.html

7
Ryu_hayabusa

xlrd est idéal pour les tâches simples, mais si vous devez travailler avec l'une des fonctionnalités plus avancées d'Excel (macros, tracé avancé, etc.) et que vous travaillez sur une machine Windows, vous pouvez utiliser la bibliothèque pywin32 pour contrôler la couche win32com. Cela donne accès à à peu près tout ce qui peut être contrôlé via des macros/Visual Basic.

5
James Atwood

Si vous voulez analyser xlsx essayez python-xlsx

0
Vader