Cours : Manipulation des fichiers Excel en Python
Objectifs du cours :
À la fin de ce chapitre, tu seras capable de :
Lire et écrire des fichiers Excel (.xlsx).
Modifier un fichier Excel cellule par cellule grâce à openpyxl.
Comprendre la différence entre Pandas et openpyxl.
Les fichiers Excel (.xlsx) :
Pandas permet de lire et écrire facilement les fichiers Excel.
📘 1.1 Lire un fichier Excel
import pandas as pd
df = pd.read_excel("fichier.xlsx", sheet_name="Feuille1")
print(df)
🔹 Paramètres utiles :
sheet_name="Feuille1" → nom de la feuille
nrows=10 → lire les 10 premières lignes
usecols="A:C" → lire les colonnes A à C
skiprows=2 → ignorer les 2 premières lignes
📗 1.2 Écrire dans un fichier Excel
df.to_excel("nouveau_fichier.xlsx", index=False)
1.3 Écrire dans plusieurs feuilles Excel
with pd.ExcelWriter("multi_feuilles.xlsx") as writer:
df1.to_excel(writer, sheet_name="Clients")
df2.to_excel(writer, sheet_name="Commandes")
🧩 2. Limites de Pandas
📌 Pandas permet de lire et écrire des fichiers Excel, mais pas de modifier les
cellules existantes (style, couleurs, fusion, formules…).
➡️Pour modifier réellement un fichier Excel cellule par cellule, il faut utiliser
openpyxl.
🧩 3. Introduction à openpyxl
openpyxl est une bibliothèque spécialisée pour travailler avec les fichiers Excel
au format .xlsx.
Elle permet :
✔ Lire un fichier Excel
✔ Modifier des cellules
✔ Ajouter des lignes
✔ Créer des feuilles
✔ Insérer des formules Excel
✔ Modifier les couleurs, bordures, tailles
📘 3.1 Charger un fichier Excel
from openpyxl import load_workbook
wb = load_workbook("fichier.xlsx")
ws = wb.active
wb = workbook (classeur)
ws = worksheet (feuille active)
📗 3.2 Lire une cellule
valeur = ws["A1"].value
print(valeur)
📙 3.3 Modifier une cellule
ws["B2"] = 42
wb.save("fichier.xlsx")
📕 3.4 Parcourir plusieurs lignes
for row in ws.iter_rows(min_row=1, max_row=5, values_only=True):
print(row)
📘 3.5 Créer un nouveau fichier Excel
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws["A1"] = "Nom"
ws["B1"] = "Age"
wb.save("nouveau.xlsx")
🧠 Pandas vs openpyxl : Quand utiliser
quoi ?
Besoin Pandas openpyxl
Lire un Excel ✔️ ✔️
Écrire un Excel ✔️ ✔️
Modifier une cellule existante ❌ ✔️
Changer la couleur / style ❌ ✔️
Ajouter des formules ❌ ✔️
Analyse de données ✔️ ❌
TP – Exercices + Solutions
✔ TP1 – Écrire un fichier Excel à partir d’un DataFrame
Énoncé :
Créer un DataFrame contenant 3 étudiants :
Nom, Note
Puis l’enregistrer dans un fichier Excel.
Solution :
import pandas as pd
data = {
"Nom": ["Sara", "Yanis", "Amine"],
"Note": [15, 12, 18]
}
df = pd.DataFrame(data)
df.to_excel("notes.xlsx", index=False)
✔ TP2 – Modifier un fichier Excel avec openpyxl
Énoncé :
1. Charger un fichier notes.xlsx
2. Ajouter 2 points à toutes les notes
3. Sauvegarder sous notes_corrigees.xlsx
Solution :
from openpyxl import load_workbook
wb = load_workbook("notes.xlsx")
ws = wb.active
for row in ws.iter_rows(min_row=2, max_col=2):
note = row[1].value
row[1].value = note + 2
wb.save("notes_corrigees.xlsx")