Un fichier Excel peut contenir bien plus qu’une simple liste de chiffres : des ventes, des dates, plusieurs onglets, des formules et parfois quelques cellules fusionnées qui compliquent la vie. Pour analyser ces données sans tout faire à la main, Python propose des bibliothèques très pratiques. Certaines lisent les classeurs, d’autres nettoient les tableaux ou automatisent Excel directement.

La bonne nouvelle ? Inutile de tout apprendre d’un coup. Avec quelques outils bien choisis, vous pouvez déjà importer un fichier, repérer les tendances et produire un rapport exploitable. Voici les bibliothèques essentielles pour passer de votre feuille de calcul à une analyse reproductible.

Avant de commencer : deux façons de travailler avec Excel

Python et Excel peuvent collaborer de deux manières. La première consiste à lire le contenu d’un fichier, à l’analyser avec Python, puis à enregistrer le résultat dans un nouveau classeur. C’est l’approche idéale pour traiter des données en série, créer des rapports ou éviter les manipulations répétitives.

La seconde consiste à piloter l’application Excel elle-même : ouvrir un classeur, actualiser des éléments ou interagir avec des fonctionnalités propres au logiciel. Cette méthode est utile pour automatiser un processus déjà très ancré dans Excel, mais elle dépend généralement de l’application installée sur l’ordinateur.

Pour la majorité des analyses, commencez par la première approche. Elle est plus facile à reproduire et ne nécessite pas de cliquer dans Excel à chaque étape. Votre souris peut prendre une pause.

Pandas : la boîte à outils de l’analyse de données

Pandas est souvent le premier choix pour manipuler des tableaux en Python. Sa structure principale, le DataFrame, ressemble à un tableau Excel : des lignes, des colonnes et des noms de colonnes. Vous pouvez filtrer des données, calculer des totaux, regrouper des ventes par mois ou repérer les valeurs manquantes.

Pour installer Pandas, ouvrez un terminal et saisissez :

pip install pandas openpyxl

Vous pouvez ensuite importer une feuille Excel et calculer rapidement le chiffre d’affaires par produit :

import pandas as pddf = pd.read_excel("ventes.xlsx", sheet_name="Données")df["Chiffre d'affaires"] = df["Quantité"] * df["Prix unitaire"]par_produit = (    df.groupby("Produit")["Chiffre d'affaires"]      .sum()      .sort_values(ascending=False))print(par_produit)

Dans cet exemple, read_excel() charge l’onglet demandé, puis groupby() regroupe les lignes par produit. En quelques instructions, vous obtenez un classement que vous auriez peut-être construit avec un tableau croisé dynamique.

Pandas est particulièrement utile pour :

  • filtrer les lignes selon une condition ;
  • calculer des indicateurs et des agrégats ;
  • fusionner plusieurs fichiers ou tableaux ;
  • nettoyer les données avant de les réexporter ;
  • exporter les résultats au format Excel ou CSV.

Pour enregistrer le résultat dans un classeur, utilisez to_excel() :

par_produit.to_excel("synthese_ventes.xlsx", sheet_name="Par produit")

À noter : selon le format et les options choisies, Pandas s’appuie sur une autre bibliothèque pour lire ou écrire les fichiers Excel. Pour les fichiers .xlsx, openpyxl est un moteur courant. Installer Pandas sans moteur compatible peut donc provoquer un message d’erreur au moment de l’import.

Openpyxl : lire et modifier la structure d’un classeur

Openpyxl travaille directement avec les fichiers .xlsx et .xlsm. Contrairement à Pandas, qui se concentre sur l’analyse de tableaux, cette bibliothèque permet d’accéder aux feuilles, aux cellules, aux styles et à plusieurs éléments du classeur.

Elle est pratique lorsque vous souhaitez modifier un modèle existant sans reconstruire tout le fichier. Par exemple, vous pouvez ouvrir un classeur, ajouter une valeur dans une cellule et enregistrer une copie :

from openpyxl import load_workbookclasseur = load_workbook("modele.xlsx")feuille = classeur["Synthèse"]feuille["B2"] = "Mise à jour"classeur.save("modele_mis_a_jour.xlsx")

Openpyxl peut également parcourir les lignes, appliquer une mise en forme ou inspecter les noms des onglets. Gardez toutefois une distinction en tête : cette bibliothèque peut lire les formules présentes dans les cellules, mais elle ne calcule pas elle-même leur résultat. Pour récupérer la valeur calculée et enregistrée dans le fichier, on peut charger le classeur avec l’option data_only=True. Encore faut-il qu’Excel ou un autre tableur ait préalablement recalculé le classeur.

Autre point important : certaines fonctions avancées d’Excel ne sont pas entièrement prises en charge. Faites toujours un essai sur une copie si votre fichier contient des macros, des graphiques complexes ou des fonctionnalités particulières. Un fichier de test coûte moins cher qu’un après-midi à réparer un classeur malmené.

Polars : accélérer les traitements volumineux

Polars est une bibliothèque de manipulation de données pensée pour la rapidité et les traitements efficaces. Elle peut être intéressante lorsque les tableaux sont volumineux ou que des opérations Pandas deviennent lentes. Son fonctionnement et certaines de ses méthodes diffèrent toutefois de ceux de Pandas : il faut prévoir un petit temps d’adaptation.

Polars sait lire des fichiers Excel, mais cette fonctionnalité dépend du moteur utilisé et de la configuration installée. Dans de nombreux workflows, une solution simple consiste à lire le classeur avec Pandas, puis à convertir les données pour les traiter avec Polars :

import pandas as pdimport polars as pldf_pandas = pd.read_excel("ventes.xlsx", sheet_name="Données")df_polars = pl.from_pandas(df_pandas)resultat = (    df_polars    .group_by("Produit")    .agg(pl.col("Quantité").sum().alias("Quantité totale")))print(resultat)

Le choix entre Pandas et Polars dépend surtout de votre contexte. Pour apprendre, trouver des exemples et effectuer des analyses courantes, Pandas reste un excellent point de départ. Pour des traitements plus exigeants, testez Polars sur un échantillon représentatif et comparez le temps d’exécution ainsi que la facilité de maintenance.

NumPy : les calculs numériques en renfort

NumPy est une bibliothèque fondamentale pour le calcul numérique en Python. Pandas l’utilise largement en arrière-plan, et vous n’aurez pas besoin de l’appeler directement pour chaque analyse Excel. Elle devient toutefois utile pour effectuer des calculs sur des tableaux numériques, créer des conditions ou traiter des valeurs manquantes.

Par exemple, imaginons que vous souhaitiez attribuer une catégorie à chaque vente selon son montant :

import numpy as npdf["Catégorie"] = np.where(    df["Chiffre d'affaires"] >= 1000,    "Vente importante",    "Vente standard")

Vous pouvez aussi utiliser NumPy pour réaliser des calculs vectorisés, c’est-à-dire appliquer une opération à toute une colonne sans écrire une boucle ligne par ligne. C’est généralement plus lisible et plus efficace.

Matplotlib et Seaborn : transformer les chiffres en graphiques

Un tableau de chiffres peut cacher une tendance difficile à repérer. Les bibliothèques Matplotlib et Seaborn permettent de créer des graphiques à partir de vos données Python. Matplotlib offre un contrôle précis, tandis que Seaborn facilite la création de visualisations statistiques avec un style soigné.

Voici un exemple avec Seaborn pour visualiser le chiffre d’affaires par produit :

import seaborn as snsimport matplotlib.pyplot as pltsns.barplot(    data=df,    x="Produit",    y="Chiffre d'affaires",    estimator="sum")plt.xticks(rotation=45)plt.tight_layout()plt.show()

Avant de tracer le graphique, vérifiez que les colonnes ont le bon type : une date stockée comme du texte ou un prix lu comme une chaîne de caractères peut fausser l’analyse. Pensez aussi à rendre le graphique lisible : noms d’axes, unités, titre et catégories bien présentées. Un graphique coloré, c’est sympathique ; un graphique compréhensible, c’est mieux.

xlwings : automatiser Excel directement

xlwings fait le lien entre Python et l’application Excel. Il permet notamment de lire et modifier des classeurs ouverts dans Excel, de lancer des scripts Python depuis un fichier ou de piloter certaines opérations du logiciel. Il est pertinent si vos utilisateurs doivent continuer à travailler dans un environnement Excel classique.

Par exemple, xlwings peut récupérer une plage depuis un classeur actif, puis renvoyer un résultat dans une autre cellule. Cette approche facilite l’intégration de calculs Python dans un processus métier existant.

En contrepartie, xlwings nécessite généralement une installation locale d’Excel et une configuration adaptée. Pour traiter des fichiers automatiquement sur un serveur sans interface graphique, Pandas et les bibliothèques de fichiers sont souvent plus appropriés. Choisissez xlwings lorsque le lien avec l’application Excel est une vraie nécessité, pas simplement parce que son nom contient « Excel ».

Comment choisir les bonnes bibliothèques ?

Pour un premier projet, inutile d’installer toute la bibliothèque municipale. Associez les outils à votre besoin :

  • Lire, filtrer et résumer des tableaux : Pandas avec openpyxl pour les fichiers .xlsx.
  • Modifier des cellules et préserver une structure de classeur : openpyxl.
  • Traiter de gros volumes de données : testez Polars sur vos fichiers réels.
  • Effectuer des calculs numériques spécifiques : NumPy.
  • Créer des graphiques : Matplotlib ou Seaborn.
  • Automatiser l’application Excel : xlwings.

Vérifiez également le format de vos fichiers. Un ancien fichier .xls ne se manipule pas toujours comme un .xlsx, et un classeur .xlsm peut contenir des macros à préserver. Les bibliothèques Python ne reproduisent pas systématiquement tous les comportements d’Excel.

Un exemple de workflow complet

Supposons que vous receviez chaque semaine un export de ventes avec des doublons, des cellules vides et des dates mélangées. Un workflow raisonnable pourrait suivre ces étapes :

  • charger le fichier avec Pandas ;
  • uniformiser les noms et les types de colonnes ;
  • supprimer ou examiner les doublons ;
  • calculer le chiffre d’affaires ;
  • regrouper les résultats par mois ou par produit ;
  • exporter une synthèse dans un nouveau fichier Excel ;
  • créer un graphique pour faciliter la lecture.

Par exemple, pour convertir une colonne de dates et repérer les lignes sans produit renseigné :

df["Date"] = pd.to_datetime(df["Date"], errors="coerce")lignes_incompletes = df[df["Produit"].isna()]df = df.dropna(subset=["Produit", "Date"])

L’option errors="coerce" transforme les dates impossibles à interpréter en valeurs manquantes. Cela permet de les identifier au lieu de laisser une erreur interrompre tout le script. Pour une analyse fiable, ne supprimez cependant pas les lignes douteuses sans vérifier leur importance : une donnée manquante peut signaler un problème de saisie à corriger à la source.

Quelques bonnes habitudes pour éviter les mauvaises surprises

Travaillez toujours sur une copie du classeur original, surtout lorsque vous automatisez des modifications. Gardez également une trace des fichiers traités, des règles de nettoyage et des erreurs détectées. Un script reproductible est bien plus utile qu’une succession d’actions manuelles dont personne ne se souvient le mois suivant.

Enfin, inspectez vos données avant de calculer : df.head() affiche les premières lignes, df.info() renseigne sur les types et les valeurs manquantes, et df.describe() résume les colonnes numériques. Ces quelques vérifications prennent quelques secondes et peuvent éviter une analyse basée sur une colonne de prix interprétée comme du texte.

Pour débuter, retenez une combinaison simple : Pandas pour analyser, openpyxl pour manipuler les classeurs et Matplotlib ou Seaborn pour visualiser les résultats. Ajoutez Polars ou xlwings lorsque votre projet le justifie. Vous pourrez alors automatiser les tâches répétitives et consacrer davantage de temps à la question la plus intéressante : que racontent vraiment vos données ?