Exporter des données vers Excel en Python
-
Exporter des données vers Excel avec la fonction
DataFrame.to_excel()
en Python -
Exporter des données vers Excel avec la bibliothèque
xlwt
en Python -
Exporter des données vers Excel avec la bibliothèque
openpyxl
en Python -
Exporter des données vers Excel avec la bibliothèque
XlsWriter
en Python
Ce didacticiel démontrera différentes méthodes pour écrire des données tabulaires dans un fichier Excel en Python.
Exporter des données vers Excel avec la fonction DataFrame.to_excel()
en Python
Si nous voulons écrire des données tabulaires sur une feuille Excel en Python, nous pouvons utiliser la fonction to_excel()
dans Pandas DataFrame
.
Un pandas DataFrame
est une structure de données qui stocke des données tabulaires. La fonction to_excel()
prend deux paramètres d’entrée : le nom du fichier et le nom de la feuille. Nous devons stocker nos données dans un pandas DataFrame
puis appeler la fonction to_excel()
pour exporter ces données dans un fichier Excel.
Nous devons avoir la bibliothèque pandas déjà installée sur notre système pour que cette méthode fonctionne. La commande pour installer la librairie pandas
est donnée ci-dessous.
pip install pandas
Une démonstration pratique de cette approche est donnée ci-dessous.
import pandas as pd
list1 = [10, 20, 30, 40]
list2 = [40, 30, 20, 10]
col1 = "X"
col2 = "Y"
data = pd.DataFrame({col1: list1, col2: list2})
data.to_excel("sample_data.xlsx", sheet_name="sheet1", index=False)
Fichier sample_data.xlsx
:
Dans le code ci-dessus, nous avons exporté les données à l’intérieur de list1
et list2
sous forme de colonnes dans le fichier Excel sample_data.xlsx
avec la fonction to_excel()
de Python.
Nous avons d’abord stocké les données à l’intérieur des deux listes dans un pandas DataFrame
. Après cela, nous avons appelé la fonction to_excel()
et passé les noms de notre fichier de sortie et de la feuille.
Gardez à l’esprit que cette méthode ne fonctionnera que tant que la longueur des deux listes est égale. Si les longueurs ne sont pas égales, nous pouvons compenser les valeurs manquantes en remplissant la liste la plus courte avec la valeur None
.
C’est la méthode la plus simple pour écrire des données dans un fichier compatible Excel en Python.
Exporter des données vers Excel avec la bibliothèque xlwt
en Python
La librairie xlwt
permet d’écrire des données dans d’anciens tableurs compatibles avec les versions d’Excel de 95 à 2003 en Python. C’est le moyen standard d’écrire des données dans des fichiers Excel en Python.
C’est aussi assez simple et nous donne plus de contrôle sur le fichier Excel que la méthode précédente. Nous pouvons créer un objet de la classe xlwt.Workbook
et appeler la fonction .add_sheet()
pour créer une nouvelle feuille dans notre classeur.
Nous pouvons alors utiliser la méthode write()
pour écrire nos données. Cette fonction write()
prend l’indice de ligne (en partant de 0), l’indice de colonne (en partant également de 0) et les données à écrire comme paramètres d’entrée.
Nous devons installer la bibliothèque xlwt
sur notre machine pour que cette méthode fonctionne. La commande pour installer la bibliothèque est donnée ci-dessous.
pip install xlwt
Un bref exemple de travail de cette méthode est donné ci-dessous.
import xlwt
from xlwt import Workbook
wb = Workbook()
sheet1 = wb.add_sheet("Sheet 1")
# sheet1.write(row,col, data, style)
sheet1.write(1, 0, "1st Data")
sheet1.write(2, 0, "2nd Data")
sheet1.write(3, 0, "3rd Data")
sheet1.write(4, 0, "4th Data")
wb.save("sample_data2.xls")
Fichier sample_data2.xls
:
En Python, nous avons écrit des données dans le fichier sample_data2.xls
avec la bibliothèque xlwt
.
Nous avons d’abord créé un objet de la classe Workbook
. A partir de cet objet, nous avons créé une feuille avec la méthode add_sheet()
de la classe Workbook
.
Nous avons ensuite écrit nos données dans la feuille nouvellement créée avec la fonction write()
. Enfin, lorsque toutes les données ont été correctement écrites dans leur index spécifié, nous avons enregistré le classeur dans un fichier Excel avec la fonction save()
de la classe Workbook
.
C’est une approche assez simple, mais le seul inconvénient est que nous devons nous souvenir de l’index de ligne et de colonne pour chaque cellule de notre fichier. On ne peut pas se contenter des indices A1
et A2
. Un autre inconvénient de cette approche est que nous ne pouvons écrire que des fichiers avec l’extension .xls
.
Exporter des données vers Excel avec la bibliothèque openpyxl
en Python
Une autre méthode qui peut être utilisée pour écrire des données dans un fichier compatible Excel est la bibliothèque openpyxl
en Python.
Cette approche résout tous les inconvénients des méthodes précédentes. Nous n’avons pas besoin de nous souvenir des indices exacts de ligne et de colonne pour chaque point de données. Spécifiez simplement nos cellules comme A1
ou A2
dans la fonction write()
.
Un autre avantage intéressant de cette approche est qu’elle peut être utilisée pour écrire des fichiers avec les nouvelles extensions de fichier .xlsx
, ce qui n’était pas le cas dans l’approche précédente. Cette méthode fonctionne exactement comme la précédente.
La seule différence ici est qu’il faut initialiser chaque cellule en plus d’une feuille avec la méthode cell(row,col)
dans la librairie openpyxl
.
Le openpyxl
est aussi une bibliothèque externe. Nous devons installer cette bibliothèque pour que cette méthode fonctionne correctement. La commande pour installer la bibliothèque openpyxl
sur notre machine est ci-dessous.
pip install openpyxl
Une démonstration de travail simple de cette approche est donnée ci-dessous.
import openpyxl
my_wb = openpyxl.Workbook()
my_sheet = my_wb.active
c1 = my_sheet.cell(row=1, column=1)
c1.value = "Maisam"
c2 = my_sheet.cell(row=1, column=2)
c2.value = "Abbas"
c3 = my_sheet["A2"]
c3.value = "Excel"
# for B2: column = 2 & row = 2.
c4 = my_sheet["B2"]
c4.value = "file"
my_wb.save("sample_data3.xlsx")
Fichier sample_data3.xlsx
:
Dans le code ci-dessus, nous avons écrit des données dans le fichier Excel sample_data3.xlsx
avec la bibliothèque openpyxl
en Python.
Nous avons d’abord créé un objet de la classe Workbook
. Nous avons créé une feuille avec le Workbook.active
à l’aide de cet objet. Nous avons également créé un objet cellule avec my_sheet.cell(row = 1, column = 1)
.
Au lieu d’écrire le numéro exact de la ligne et de la colonne, nous pouvons également spécifier le nom de la cellule comme A1
. Nous pouvons ensuite attribuer notre valeur de cellule nouvellement créée avec c1.value = "Maisam"
.
Enfin, lorsque toutes les données ont été correctement écrites dans leur index spécifié, nous avons enregistré le classeur dans un fichier Excel avec la fonction save()
de la classe Workbook
.
Exporter des données vers Excel avec la bibliothèque XlsWriter
en Python
Un autre moyen simple et efficace d’écrire des données dans un fichier compatible avec Excel est la bibliothèque XlsWriter
en Python.
Cette bibliothèque nous donne beaucoup plus de contrôle sur notre fichier de sortie que toutes les méthodes précédentes mentionnées ci-dessus. Cette bibliothèque prend également en charge les dernières extensions de fichiers compatibles Excel comme xlsx
.
Pour écrire des données dans un fichier Excel, il faut d’abord créer un objet de la classe Workbook
en fournissant le nom du fichier du constructeur comme paramètre d’entrée. Il faut ensuite créer une feuille avec la fonction add_worksheet()
dans la classe Workbook
.
Après avoir ajouté une feuille, nous pouvons écrire des données avec la fonction sheet.write(cell, data)
. Cette fonction sheet.write()
prend deux paramètres : le nom de la cellule et les données à écrire.
Après avoir écrit toutes les données sur la feuille, nous devons fermer notre classeur avec la méthode close()
dans la classe Workbook
.
Le XlsWriter
est une bibliothèque externe et n’est pas pré-installé avec Python. Il faut d’abord installer la librairie XlsWriter
sur notre machine pour que cette méthode fonctionne. La commande pour installer la librairie XlsWriter
est donnée ci-dessous.
pip install XlsxWriter
Une démonstration pratique de cette approche est présentée ci-dessous.
import xlsxwriter
workbook = xlsxwriter.Workbook("sample_data4.xlsx")
sheet = workbook.add_worksheet()
sheet.write("A1", "Maisam")
sheet.write("A2", "Abbas")
workbook.close()
Fichier sample_data4.xlsx
:
Nous avons écrit des données dans le fichier Excel sample_data4.xlsx
avec la bibliothèque Python xlswriter
dans le code ci-dessus.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn