Exporter des données vers Excel en Python

Muhammad Maisam Abbas 30 janvier 2023
  1. Exporter des données vers Excel avec la fonction DataFrame.to_excel() en Python
  2. Exporter des données vers Excel avec la bibliothèque xlwt en Python
  3. Exporter des données vers Excel avec la bibliothèque openpyxl en Python
  4. Exporter des données vers Excel avec la bibliothèque XlsWriter en Python
Exporter des données vers Excel 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 :

exemples de données

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 :

exemple de données2

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 :

exemple de données3

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 :

exemple de données4

Nous avons écrit des données dans le fichier Excel sample_data4.xlsx avec la bibliothèque Python xlswriter dans le code ci-dessus.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Article connexe - Python Excel