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 ?
Réponses
Trop de publicités?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.
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.
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
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.
Si vous voulez analyser xlsx
essayer python-xlsx
- Réponses précédentes
- Plus de réponses