L’intégration de Python dans Excel permet maintenant d’analyser et de modifier des images directement dans vos feuilles de calcul
Guide complet : Analyser et modifier des images avec Python dans Excel
Introduction
Microsoft a récemment introduit une fonctionnalité révolutionnaire qui permet d’analyser et de modifier des images directement dans Excel grâce à l’intégration de Python. Cette nouvelle capacité transforme Excel en un outil puissant de traitement d’images, éliminant le besoin d’utiliser des logiciels externes pour des tâches d’analyse d’images de base. L’utilisateur peut désormais manipuler, analyser et extraire des informations d’images directement dans ses feuilles de calcul, que ce soit sur Windows, Mac ou via la version web d’Excel.
Matériel et prérequis nécessaires
Configuration système requise
- Windows : Version 2509 ou ultérieure
- Mac : Version 16.101 ou ultérieure
- Excel Web : Déploiement en cours
- Accès à Python dans Excel (fonctionnalité Microsoft 365)
Bibliothèques Python recommandées
- Pillow (PIL) – Bibliothèque principale pour le traitement d’images
- NumPy – Pour les opérations sur les tableaux
- SciPy – Pour les filtres et traitements avancés
Étape 1 : Insertion d’une image dans Excel
La première étape consiste à insérer l’image que l’on souhaite analyser dans une cellule Excel.
- Ouvrir le fichier Excel dans lequel on souhaite travailler
- Sélectionner la cellule de destination (par exemple A1)
- Naviguer vers Insertion > Illustrations > Images
- Choisir “Placer dans la cellule”
- Sélectionner l’image depuis l’ordinateur ou une source en ligne
- Confirmer l’insertion
Important : L’image doit être placée dans une cellule spécifique pour pouvoir être référencée par le code Python.
Étape 2 : Configuration des paramètres d’image
Pour optimiser les performances et éviter les erreurs de limite de données, il est recommandé d’ajuster les paramètres de taille d’image.
- Aller dans Fichier > Options > Avancé
- Localiser la section “Lors du calcul de ce classeur > Python dans Excel”
- Sélectionner la taille d’image appropriée :
- Taille réelle : Pour une qualité maximale
- Grande (1280×960) : Pour un bon équilibre qualité/performance
- Moyenne (640×480) : Pour un traitement rapide
- Petite (320×240) : Pour des analyses simples
- Appliquer les modifications
Étape 3 : Création du code Python pour l’analyse d’image
Initialisation du code Python
- Sélectionner une cellule vide pour le code Python
- Taper =PY() dans la cellule
- Appuyer sur Entrée pour ouvrir l’éditeur de code Python
Code de base pour l’analyse de netteté
Voici un exemple de code pour analyser si une image est nette ou floue :
from PIL import Image import numpy as np from scipy.signal import convolve2dConvertir l'image en niveaux de gris et en tableau
image = xl("A1") arr = np.array(image.convert("L"), dtype=np.float32)Appliquer le filtre Laplacien
laplacian = convolve2d(arr, [[0, 1, 0], [1, -4, 1], [0, 1, 0]], mode='same', boundary='symm')Classifier selon la variance
"Floue" if np.var(laplacian) < 100 else "Nette"
- Copier le code dans l’éditeur Python
- Appuyer sur Ctrl+Entrée pour exécuter le code
- Le résultat s’affichera dans la cellule
Étape 4 : Manipulation avancée des images
Conversion en niveaux de gris
from PIL import ImageCharger l'image
image = xl("A1")Convertir en niveaux de gris
gray_image = image.convert("L")Retourner l'image convertie
gray_image
Ajustement de la luminosité
from PIL import Image, ImageEnhanceCharger l'image
image = xl("A1")Créer un objet d'amélioration de luminosité
enhancer = ImageEnhance.Brightness(image)Ajuster la luminosité (1.0 = normale, >1.0 = plus lumineux, <1.0 = plus sombre)
bright_image = enhancer.enhance(1.5) bright_image
Redimensionnement d’image
from PIL import ImageCharger l'image
image = xl("A1")Redimensionner l'image
resized_image = image.resize((800, 600)) resized_image
Étape 5 : Extraction de métadonnées
L’extraction de métadonnées permet d’obtenir des informations détaillées sur l’image.
from PIL import Image from PIL.ExifTags import TAGSCharger l'image
image = xl("A1")Extraire les métadonnées EXIF
exifdata = image.getexif()Créer un dictionnaire des métadonnées
metadata = {} for tag_id in exifdata: tag = TAGS.get(tag_id, tag_id) data = exifdata.get(tag_id) metadata[tag] = dataRetourner les informations de base
f"Taille: {image.size}, Mode: {image.mode}, Format: {image.format}"
Étape 6 : Traitement en lot d’images
Pour traiter plusieurs images simultanément, on peut utiliser une approche systématique.
- Placer les images dans des cellules consécutives (A1, A2, A3, etc.)
- Créer un code Python qui itère sur ces cellules
- Appliquer le même traitement à toutes les images
from PIL import Image import numpy as npListe pour stocker les résultats
results = []Traiter les images de A1 à A5
for i in range(1, 6): try: cell_ref = f"A{i}" image = xl(cell_ref)Analyser la taille de l'image
width, height = image.size total_pixels = width * height results.append(f"Image {i}: {width}x{height} ({total_pixels} pixels)") except: results.append(f"Image {i}: Erreur ou cellule vide")Retourner tous les résultats
"n".join(results)
Étape 7 : Gestion des erreurs et optimisation
Gestion des erreurs courantes
- Erreur de limite de données : Réduire la taille de l’image dans les paramètres
- Image non trouvée : Vérifier que l’image est bien placée dans la cellule référencée
- Erreur de format : S’assurer que le fichier est un format d’image supporté
Code avec gestion d’erreurs
from PIL import Image import numpy as np try:Charger l'image
image = xl("A1")Vérifier si l'image existe
if image is None: result = "Aucune image trouvée dans la cellule A1" else:Effectuer l'analyse
width, height = image.size result = f"Image analysée: {width}x{height} pixels" except Exception as e: result = f"Erreur: {str(e)}" result
Étape 8 : Applications pratiques avancées
Détection de couleurs dominantes
from PIL import Image import numpy as np from collections import CounterCharger l'image
image = xl("A1")Convertir en mode RGB si nécessaire
if image.mode != 'RGB': image = image.convert('RGB')Redimensionner pour accélérer le traitement
image = image.resize((150, 150))Obtenir les couleurs
colors = image.getcolors(maxcolors=256256256)Trouver la couleur dominante
if colors: dominant_color = max(colors, key=lambda item: item[0]) rgb = dominant_color[1] f"Couleur dominante: RGB({rgb[0]}, {rgb[1]}, {rgb[2]})" else: "Impossible de déterminer la couleur dominante"
Ajout de filigrane
from PIL import Image, ImageDraw, ImageFontCharger l'image principale
image = xl("A1")Créer une copie pour modification
watermarked = image.copy()Créer un objet de dessin
draw = ImageDraw.Draw(watermarked)Ajouter le texte de filigrane
text = "© Mon Entreprise 2025" position = (50, 50)Dessiner le texte (couleur blanche avec transparence)
draw.text(position, text, fill=(255, 255, 255, 128)) watermarked
Conclusion
L’intégration de Python dans Excel pour le traitement d’images représente une avancée significative qui transforme Excel en un outil polyvalent de traitement d’images. Cette fonctionnalité est particulièrement utile pour les professionnels qui travaillent avec de grandes quantités d’images et ont besoin de les traiter en lot.
Les principales applications incluent l’analyse de qualité d’images, la modification de propriétés visuelles, l’extraction de métadonnées, et le traitement automatisé. Cette intégration élimine le besoin d’utiliser des logiciels externes pour des tâches de traitement d’images de base à intermédiaire.
Il est important de noter que cette fonctionnalité est actuellement disponible pour les utilisateurs ayant accès à Python dans Excel et utilisant les versions spécifiées. Pour les utilisateurs d’Excel Web, le déploiement est en cours et devrait être disponible prochainement.
Cette innovation ouvre de nouvelles possibilités pour l’analyse de données visuelles directement dans l’environnement familier d’Excel, rendant le traitement d’images plus accessible aux utilisateurs qui ne sont pas nécessairement experts en programmation ou en traitement d’images.

Rédactrice spécialisée en édition de site. Formation de journaliste et passionnée par les nouvelles technologies, l’intelligence artificielle et la rédaction web.
Laisser un commentaire