Getty Images
Comment Microsoft intègre Python dans Excel
Le 22 août, Microsoft a dévoilé la préversion publique d’une fonctionnalité pour intégrer Python à Excel, en partenariat avec Anaconda. Le géant technologique justifie l’usage de conteneurs isolés sur son cloud pour des raisons de sécurité.
Après Oracle Autonomous Database, Snowflake, SAP Datawarehouse Cloud (ex SAP BW), voilà que Microsoft décide d’intégrer Python à Excel.
Cette préversion publique dévoilée cette semaine a pour but de rendre accessible la fonctionnalité à tous les utilisateurs ayant souscrit au programme Microsoft 365 Insider. Ils pourront télécharger la Build Version 2309 16.0.16818.2000 à travers le Canal bêta d’Office 365. Elle peut être déployée sur Windows 10 ou 11. La version Mac sera livrée au moment de la disponibilité générale de la fonction.
Microsoft assure que Python dans Excel s’adresse aux analystes pour combiner les flux de travail Excel avec le langage aisément interprétable par un humain afin d’effectuer des visualisations, nettoyer des données, réaliser des tâches de machine learning ou encore conduire des analyses prédictives.
Microsoft n’entend pas seulement offrir la possibilité d’intégrer des DataFrames dans les cellules Excel, mais également laisser les utilisateurs exploiter les capacités de 19 librairies.
Microsoft intègre les librairies bien connues Numpy, Pandas, Seaborn et statsmodels. Les librairies matpotlib, scikit-learn et pytorch peuvent aussi être utilisées.
Tout faire pour éviter les injections de code
Pour ce faire, le géant du cloud s’est associé avec l’éditeur de la plateforme Anaconda. Au lieu de packager les librairies dans le client Excel ou de de compter sur le fait que les utilisateurs installent eux-mêmes les librairies, Microsoft préfère utiliser son cloud. Ainsi, un conteneur dédié Azure accueille les librairies Python et permet d’exécuter les traitements réclamés de manière isolée par l’hyperviseur Hyper-V sur Azure Container.
Ce conteneur héberge la distribution Anaconda qui contient l’ensemble des bibliothèques. Microsoft assure que le code Python « n’a pas accès à l’appareil, au compte, au réseau ou au jeton d’authentification ».
Pour appeler le code et les librairies Python, l’utilisateur peut initialiser le conteneur en quelques clics via le ruban et l’onglet « insérer Python ». La fonction PY=() (et non seulement PY=, comme décrit dans l’annonce de Microsoft) permet également d’enclencher les traitements.
Ce choix en partie contraignant – il faut absolument une connexion à Internet pour profiter de la fonctionnalité – doit éviter les injections de code malveillant.
Microsoft a ainsi limité l’interaction avec les objets Excel. Le code Python peut lire les valeurs des cellules et celles en provenance de sources de données externes à travers le moteur de préparation et de transformation de données Power Query (qui peut être assimilé à un ETL).
Pour cela, la fonction xl() permet d’interfacer Python avec les objets Excel dont les plages, les tableaux, les requêtes et les noms.
Les résultats peuvent être retournés sous forme d’objet Python ou de valeurs Excel « équivalentes », mais le code ne retourne pas « de macros, de code VBA (Visual Basic for Applications) ou d’autres formules ».
« Le code Python n’a pas accès aux autres propriétés du classeur, telles que les formules, les graphiques, les tableaux croisés dynamiques, les macros ou le code VBA », précise la documentation de Microsoft.
Ainsi, Microsoft a rendu incompatibles les fonctions Python pandas.read_csv et pandas.read_excel dans Excel.
Excel permet de partager les classeurs par Internet, mais pour éviter qu’un utilisateur vérole sa machine avec du code Python infecté, celui-ci n’est pas exécuté par défaut. Microsoft Defender s’enclenche pour prévenir l’utilisateur que le classeur n’est pas approuvé. Si l’usager compte tout de même exécuter le code, celui-ci demeure dans le conteneur isolé, ce qui doit éviter « toute interaction ou interférence potentielle avec d’autres codes Python exécutés à partir d’autres classeurs ouverts ».
Microsoft assure par ailleurs qu’il mettra régulièrement à jour les conteneurs, l’hyperviseur, les librairies et le package Python.
De bons retours, malgré quelques doutes subsistants
La réception publique de cette annonce est bonne, que ce soit chez les particuliers ou les professionnels.
« Chez KPMG, nous sommes ravis de l’impact que Python dans Excel aura sur nos clients du secteur fiscal », affirme Tejas Varia, Directeur, Tax Data & Analytics chez KPMG, dans un communiqué de presse. « Soutenu par les promesses de données et de sécurité offertes par le cloud de Microsoft, Python a le potentiel d’améliorer l’expérience Excel pour l’analyse avancée tout en fournissant aux entreprises la transparence, la simplicité et des aperçus plus profonds de leurs finances ».
Chris Gross, responsable de programme senior Excel chez Microsoft, mentionne le fait que l’éditeur a été dépassé par les événements : certains usagers inscrits à la bêta n’ont pas eu accès à la fonctionnalité, un « bug » qui a depuis été corrigé.
Toutefois, quelques voix s’élèvent contre la méthodologie d’implémentation mise en place par Microsoft. Si la priorité affichée est bien la sécurité, certains usagers regrettent que le fournisseur n’ait pas proposé un moyen d’utiliser des librairies Python installées localement. Le fait d’héberger des données sur le cloud ou les potentiels problèmes de performances liés au réseau sont aussi des freins pour certains utilisateurs. D’autant que des librairies compatibles avec Excel existent par ailleurs dans le cadre de projets open source.
Or, avec le support officiel permis par Microsoft, « après la préversion publique, certaines fonctionnalités seront restreintes sans une licence payante ». À noter que dans le cadre de cette préversion publique, les capacités de calcul disponibles demeurent limitées.
Pour information, Google Sheets et Office Calc proposent une fonctionnalité similaire dont l’installation s’avère beaucoup plus manuelle. Ici, la firme de Redmond entend populariser l’usage de Python auprès d’un plus grand nombre de professionnels : elle partage déjà des tutoriels pour exploiter le langage de programmation, déjà au cœur d’un bon nombre de projets de machine learning et de deep learning.