Lorsqu'il n'y a pas de fonction Excel pour le travail à accomplir, les programmeurs Python font appel à PyXLL.
PyXLL est un outil qui comble le fossé entre Microsoft Excel et Python. Il vous permet d'intégrer de manière transparente le code et les fonctionnalités Python dans des feuilles de calcul Excel. Avec PyXLL, Excel devient une plateforme permettant d'exploiter les bibliothèques et les fonctionnalités de Python.
PyXLL sert de complément Excel. Vous pouvez l'utiliser pour écrire des fonctions et des macros Python directement dans l'environnement VBA d'Excel. PyXLL joue alors le rôle d'interprète et exécute le code dans les cellules Excel, ouvrant ainsi de nombreuses possibilités. Certaines d’entre elles incluent l’automatisation de tâches complexes, l’analyse avancée des données et la visualisation des données.
Un aperçu de PyXLL
PyXLL fonctionne en exécutant un interpréteur Python dans le processus Excel. Cela donne à votre code Python, exécuté dans PyXLL, un accès direct aux données et objets Excel. L'outil est écrit en C++ et utilise la même technologie sous-jacente qu'Excel. Cela signifie que le code Python exécuté dans PyXLL est généralement beaucoup plus rapide que
Code VBA Excel.Installation et configuration
Pour installer PyXLL, rendez-vous sur le Site Web PyXLL et téléchargez le complément. Assurez-vous que la version Python et la version Excel que vous choisissez correspondent à celles installées sur votre système. PyXLL n'est disponible que pour la version Windows d'Excel.
Une fois le téléchargement terminé, ouvrez une invite de commande et exécutez cette commande :
pip install pyxll
Vous devez avoir Pip installé sur votre système pour que la commande ci-dessus s'exécute. Utilisez ensuite le package PyXLL pour installer le complément PyXLL :
pyxll install
Le programme d'installation vous demandera si vous avez téléchargé le complément. Entrez oui, puis indiquez le chemin d'accès au fichier zip contenant le complément. Suivez ensuite les instructions à l'écran pour terminer l'installation.
Premiers pas avec PyXLL
Une fois le plugin installé, lancez Excel. Avant son lancement, une invite apparaîtra vous demandant de Commencer procès ou Acheter maintenant. La version d'essai expirera après trente jours et vous devrez alors acheter une licence pour continuer à utiliser PyXLL.
Clique sur le Commencer procès bouton. Cela lancera Excel avec le complément installé.
Sur le Onglet Exemple PyXLL, clique sur le À propos de PyXLL bouton. Cela vous montrera le chemin dans lequel vous avez installé le complément, ainsi que les chemins d'accès aux fichiers de configuration et aux fichiers journaux.
Le chemin contenant le fichier de configuration est important car vous devrez modifier ce fichier plus tard, alors notez-le.
Exposer les fonctions Python à Excel
Pour exposer une fonction Python à Excel en tant que fonction définie par l'utilisateur (UDF), utilisez le @xl_func décorateur. Ce décorateur demande à PyXLL d'enregistrer la fonction auprès d'Excel, la mettant à la disposition des utilisateurs.
Par exemple, pour exposer un Python fibonacci() fonction vers Excel en tant qu'UDF, vous pouvez utiliser la @xl_func décorateur comme suit :
from pyxll import xl_func
@xl_func
deffibonacci(n):
This is a Python function that calculates the Fibonacci sequence.
if n < 0:
raise ValueError("n must be non-negative")
elif n == 0or n == 1:
return n
else:
return fibonacci(n - 1) + fibonacci(n - 2)
Enregistrez ce code avec une extension .py et notez le chemin du dossier dans lequel vous enregistrez le fichier.
Maintenant, ouvrez le fichier de configuration PyXLL dans un éditeur et faites défiler jusqu'à une ligne commençant par « pythonpath ». Ce paramètre est généralement une liste de dossiers dans lesquels PyXLL recherchera les modules Python. Ajoutez le chemin d'accès au dossier contenant le code source de la fonction Fibonacci.
Faites ensuite défiler jusqu'à "modules" et ajoutez votre module. Par exemple, si vous avez enregistré votre fichier sous fibonacci.py, ajoutez le nom "fibonacci" à la liste :
Cela exposera les fonctions du module qui utilisent le @xl_func décorateur vers Excel. Revenez ensuite à Excel et, sur le Onglet Exemple PyXLL, clique sur le Recharger PyXLL bouton pour synchroniser les modifications dans le fichier de configuration. Vous pouvez alors appeler le Python fibonacci fonctionne comme n’importe quelle autre formule Excel.
Vous pouvez créer autant de fonctions que nécessaire et les exposer à Excel de la même manière.
Transmission de données entre Excel et Python
PyXLL prend en charge l'utilisation de bibliothèques Python externes, comme Pandas. Il vous permet de transmettre les données de ces bibliothèques à Python et vice versa. Par exemple, vous pouvez utilisez Pandas pour créer une trame de données aléatoire et transmettez-le à Excel. Assurez-vous que Pandas est installé sur votre système, puis essayez ce code :
from pyxll import xl_func
import pandas as pd
import numpy as np
@xl_func("int rows, int columns: dataframe
", auto_resize=True)
defrandom_dataframe(rows, columns):
data = np.random.rand(rows, columns)
column_names = [chr(ord('A') + x) for x in range(columns)]
return pd.DataFrame(data, columns=column_names)
Vous devez suivre le même processus pour exposer ce module et ses fonctions à Excel. Essayez ensuite d'appeler le random_dataframe fonctionne comme vous le feriez avec une autre formule Excel :
=random_dataframe(10,5)
Vous pouvez modifier le nombre de lignes et de colonnes à votre guise.
Vous pouvez transmettre vos dataframes prédéfinies à Excel de la même manière. Il est également possible de importer des données Excel dans le script Python à l'aide de Pandas.
Limites de PyXLL
- Compatibilité Windows et Excel: PyXLL est principalement conçu pour Windows et fonctionne avec Microsoft Excel sous Windows. Il peut présenter des fonctionnalités limitées ou des problèmes de compatibilité sur les plates-formes non Windows, car il est optimisé pour les environnements Windows.
- Déploiement: le déploiement de feuilles de calcul basées sur PyXLL auprès des utilisateurs finaux nécessite que Python soit installé avec un minimum de dépendances ou que le runtime Python soit fourni avec la feuille de calcul. Cela signifie que les utilisateurs qui souhaitent utiliser des feuilles de calcul alimentées par PyXLL doivent avoir Python installé sur leurs machines.
- Courbe d'apprentissage: L'utilisation efficace de PyXLL nécessite une certaine connaissance de la programmation Python et une familiarité avec le modèle objet d'Excel. Les utilisateurs qui ne sont pas familiers avec Python ou le modèle objet d'Excel devront peut-être investir du temps dans l'apprentissage de ces concepts avant d'utiliser pleinement les capacités de PyXLL.
- Coût de la licence: PyXLL est un produit commercial et, en fonction de votre utilisation et de vos besoins, son utilisation peut entraîner des frais de licence. Le coût d'utilisation de PyXLL dépend de facteurs tels que le nombre d'utilisateurs, l'échelle de déploiement et les accords de licence.
Devriez-vous toujours utiliser les fonctions Excel?
Cela dépend de ce que vous voulez accomplir. Il est toujours judicieux d’utiliser les fonctions Excel natives lorsqu’elles sont disponibles. Mais pour les tâches plus complexes, que les fonctions intégrées d’Excel ne peuvent pas gérer, PyXLL est une excellente solution.
La bibliothèque Pandas est un complément parfait à PyXLL avec ses capacités analytiques et son solide support pour le traitement des données.