Comment utiliser Python dans PowerPoint
Les rapports quotidiens, mensuels ou même annuels peuvent prendre une place importante dans l'emploi du temps de nombreux collaborateurs d'entreprise. Créer et mettre à jour des diapositives pour soutenir vos présentations peut être une activité chronophage, et peut-être pas la plus stimulante intellectuellement.
Si vous mettez régulièrement à jour les mêmes diapositives avec de nouvelles données, vous pouvez gagner du temps en automatisant le processus.
Le package Python « python-pptx » peut vous aider à le faire. La bibliothèque fournit des objets Python de haut niveau pour interagir avec un fichier PowerPoint, afin que vous puissiez créer de nouvelles présentations ou en modifier une existante dans Python. Comme il est difficile de créer des présentations élégantes à partir de zéro uniquement avec des lignes de code, l'approche la plus simple consiste à commencer par créer un fichier modèle qui sera édité par votre script python. Une fois le fichier principal chargé, la bibliothèque permet de nombreuses opérations :
- Remplacement de texte dans la diapositive : vous pouvez éditer, créer et remplacer du texte dans les formes de votre modèle.
- Dupliquer et supprimer des diapositives : Vous pouvez avoir des diapositives avec une structure similaire mais des données différentes. Dans ce cas, dupliquer le modèle et mettre à jour chaque nouvelle diapositive peut être une option intéressante pour gagner du temps. Une fois cela fait, vous pouvez supprimer la diapositive du modèle.
- Mise à jour des données du graphique : Python-pptx fournit des interfaces pour travailler avec des graphiques dans votre présentation. Même si vous pouvez créer un nouveau graphique à partir de zéro, le moyen le plus simple est souvent de mettre à jour un graphique existant dans le modèle.
Utilisation de Python dans Powerpoint : Mode d’emploi
Pour donner un exemple simple, nous allons automatiser le processus de création d'une présentation simple qui montre les dernières données financières de quelques entreprises bien connues. Nous utiliserons des données disponibles publiquement, qui seront récupérées à partir de l'API Yahoo Finance dans le script python.
Nos besoins sont très basiques, nous aimerions avoir les diapositives suivantes :
- Une diapositive de titre pour introduire la présentation, avec la date de la dernière mise à jour.
- Une diapositive de table des matières, avec le nom des entreprises que nous allons présenter.
- Pour chaque entreprise, une diapositive d'introduction textuelle.
- Pour chaque entreprise, une diapositive pour afficher quelques KPI.
- Pour chaque entreprise, une diapositive qui montre l'évolution des indicateurs financiers dans un graphique à barres.
- Pour chaque entreprise, l'évolution du cours de l'action dans un graphique linéaire.
- Et à la fin, pourquoi pas, créer une petite conclusion
Nous aimerions présenter brièvement chaque entreprise. Pour ce faire, nous pouvons utiliser le résumé officiel de l'entreprise, qui est fourni par Yahoo Finance, mais il existe une autre façon. Nous pourrions demander à un Large Language Model de créer quelques puces, afin que le format corresponde exactement à nos besoins pour la diapositive. Dans cet article, nous utiliserons Claude 3.5, fourni par AWS Bedrock API. Pour chaque appel, nous avons créé une invite générique, et nous la compléterons dans Python avec des données d'exécution.
Comme nous avons décidé d'ajouter du contenu généré par LLM pour améliorer notre présentation, nous pouvons également demander à l'IA de choisir les meilleurs investissements dans la liste. Notre dernière diapositive présentera les trois meilleures entreprises que le modèle a sélectionnées pour nous.
L'implémentation Python suivra ces étapes :
- Créer le fichier modèle : créez un modèle pour chaque diapositive que vous souhaitez dans votre présentation finale. Créez les formes et les zones de texte requises qui seront remplies plus tard. Appliquez un style pour rendre les choses plus jolies.
- Récupérer des données externes : notre code Python devra récupérer des données externes pour remplir la présentation. Nous avons décidé d'utiliser l'API Yahoo Finance, qui dispose d'un wrapper Python, et de générer du texte avec Bedrock, que nous pouvons appeler avec le client Boto3.
- Créer des fonctions pour chacune de vos diapositives : créez une fonction Python pour chaque diapositive, qui établit les liens entre vos données et les formes de votre fichier modèle.
- Bouclez sur vos données pour créer les diapositives requises : vous pouvez faire une boucle sur vos données, pour que la présentation corresponde dynamiquement à la structure souhaitée.
- Exporter la présentation : une fois terminé, Python peut exporter vos mises à jour vers un nouveau fichier pptx, afin que l'utilisateur final puisse l'ouvrir avec Power Point.
Voici un aperçu simple du résultat :



Pour la diapositive suivante, nous avons demandé à Claude v3.5 de créer un résumé et quelques puces pour décrire l'entreprise, au lieu de simplement utiliser des données disponibles en ligne. Le LLM nous permet d'avoir un contenu textuel qui correspond exactement au format que nous souhaitons, donc il s'intègre bien dans la présentation.

Dans la diapositive suivante, un peu de mise en forme du texte est nécessaire, en raison de la diversité des chiffres. Nous devons anticiper que les bénéfices d’une entreprise peuvent être un nombre assez important, qui doit donc être simplifié.


Pour la dernière diapositive, nous avons demandé au LLM de nous recommander trois entreprises dans lesquelles investir avec une petite justification. Nous pouvons demander au modèle de correspondre à un formatage donné afin que nous puissions extraire les noms des entreprises et pour chacune d’elles la justification. Une fois tout extrait, nous pouvons remplir notre modèle avec les données.

Le code de l'exemple est disponible sur Github, à l'adresse
Quelques idées
Voici quelques idées pour aller plus loin et automatiser des tâches plus redondantes :
- Utilisez des images générées par l’IA pour illustrer vos présentations en fonction de leur contenu
- Récupérez des données depuis l’API de votre ERP, pour créer des présentations avec les données de votre entreprise
- Planifiez le processus de génération, au sein de votre CI/CD ou de votre planificateur pour recevoir la présentation mise à jour chaque matin.
- Créez un support pour vos réunions Scrum en connectant votre script à JIRA
- Mettez à jour automatiquement vos slides génériques avec les données d’un client donné.
- Mettez à jour automatiquement votre présentation commerciale avec les dernières valeurs de certaines métriques.