Bonjour
J'aimerais lire et écrire des fichiers excel.
Quel est le meilleur module pour python3.9 (sous Windows et Linux).
Il semble qu'il y ait le choix:
Cordialement
Bonjour
J'aimerais lire et écrire des fichiers excel.
Quel est le meilleur module pour python3.9 (sous Windows et Linux).
Il semble qu'il y ait le choix:
Cordialement
J'ai déjà utilisé xlrd et xlwt mais je préfère maintenant pandas.
Attention, xlrd et xlwt ne sont faits que pour les fichiers "xls" (Bayard n'a pas précisé quel type de fichier excel il veut lire mais si c'est du excel 2010...). Et pour pandas faudrait que tu précises s'il est adapté aux excels récents (ça peut être utile pour ceux qui, comme moi, ne connaissent pas cette librairie).
Sinon il semble que la librairie plébiscitée aujourd'hui pour les excels new génération soit openpyxl.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Heu, il faut lire des fichiers xlsX.
Pandas gère des fichiers xlsx.
J'ai testé
Bonjour,
pour le boulot, je suis justement en train d'écrire une classe qui doit lire indépendamment des fichiers .xls et .xlsx et j'utilise la librairie pandas.
Cette dernière utilise openpyxl pour gérer les fichiers .xlsx et, je crois, xlrd pour les anciens formats.
Ci-dessous, un vieux bout de code issu du tout début du projet, pas le code à jour sous la main là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 from pathlib import Path import pandas def main() -> None: '''Main function''' data = {} for file in Path('.').glob('*.xls*'): document = pandas.ExcelFile(file) data[file] = pandas.read_excel( document, document.sheet_names[0], index_col=None, na_values=["NA"] ) print(f'{file} traité') for file in data: print(f'{file} = {data[file]}')
Et si besoin, une p'tite classe lisant un fichier Excel (xls, xlsx, peu importe) et retournant les données récupérées de la première feuille dans un dictionnaire.
Avec cet exemple de fichier Excel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #!/usr/bin/env python3 from pathlib import Path from typing import Any import pandas class ExcelDataExtractor: '''ExcelDataExtractor. Extracts data from an Excel file. ''' @staticmethod def content(excelfile: Path) -> dict[str, Any]: '''Extracts content from an Excel file et returns it. Args: excelfile (Path): Xls or xlsx file name. Returns: dict[str, Any] : Excel content returned to dict. ''' document = pandas.ExcelFile(excelfile) return pandas.read_excel( document, sheet_name=document.sheet_names[0], ).T.to_dict()
Le code pour taper dans la classe
En sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 from pathlib import Path from excel_data_extractor import ExcelDataExtractor def main() -> None: '''Main function''' excelfile: Path = Path('test.xlsx') content = ExcelDataExtractor().content(excelfile=excelfile) print(content) if __name__ == '__main__': main()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 {0: {'CHAMP 1': 'valeur 1', 'CHAMP 2': 'valeur 1', 'CHAMP 3': 'valeur 1'}, 1: {'CHAMP 1': 'valeur 2', 'CHAMP 2': 'valeur 2', 'CHAMP 3': 'valeur 2'}, 2: {'CHAMP 1': 'valeur 3', 'CHAMP 2': 'valeur 3', 'CHAMP 3': 'valeur 3'}}
Bonjour,
Pour le boulot j'utilise xlsxwriter depuis longtemps , il fut un temps ou il n'était possible de créer les fichiers Excel avec openpyxl , je ne sais pas si c'est toujours le cas.
De plus la mise ne forme de cellules est assez simple.
Partager