Microsoft vient d’annoncer une nouveauté majeure pour son tableur Excel : la prise en charge du langage de programmation Python. De quoi imposer encore un peu plus Excel comme l’interface universelle de la Data Science. Mais l’implémentation pose question et ne sera pas gratuite…

Python est sans doute le langage de programmation le plus populaire. Il l’est clairement dans le domaine de l’analyse et de la visualisation de données grâce à un riche écosystème de bibliothèques spécialisées dans les calculs statistiques et les visualisations comme Pandas, statsmodel, Matplotlib ou Seaborn mais aussi dans la Machine Learning à l’instar de SciKit-Learn ou Pytorch.

L’intégration officielle de Python dans Excel constitue une petite révolution pour tous ceux qui manipulent des données, même si une telle intégration était déjà possible via des plugins tiers. Désormais, il est possible d’intégrer du code Python directement dans les cellules Excel et d’accéder ainsi à tout un univers étendu de fonctions de DataViz, de Data Cleaning (nettoyage des données), de ML, d’analyse prédictive et autres traitements avancés de données.

L’arrivée de Python au cœur d’Excel permet à tous ceux qui manipulent des données au quotidien de combiner la richesse fonctionnelle et visuelle d’Excel aux puissantes bibliothèques d’analyse et de visualisation de données de l’écosystème Python. Il devient possible de manipuler et explorer des données dans Excel et de les analyser à l’aide de graphiques et de bibliothèques Python, puis d’utiliser les formules, les graphiques et les tableaux croisés dynamiques d’Excel pour affiner les observations.

Comment ça marche ?

Pour exécuter du code Python dans Excel, rien de plus simple. Il suffit d’utiliser la nouvelle fonction « =PY() » et de saisir le code Python entre les parenthèses. Au passage, on notera que la barre de saisie des fonctions Excel a été enrichie de fonctionnalités d’édition et de mise en forme de code Python.
Toutefois, ce simple appel à du code Python n’aurait pas grand intérêt si ce dernier ne pouvait pas directement interagir avec Excel. C’est pourquoi l’implémentation Python proposée par Microsoft ajoute une nouvelle fonction « xl() » qui sert de pont entre Python et Excel et permet depuis le code Python de manipuler le contenu des cellules, les graphes ou les PivotTables.

Il est important de bien comprendre que « =PY() » depuis Excel et « xl() » depuis Python sont les seuls et uniques moyens proposés pour faire collaborer l’univers Excel et l’univers Python. Dit autrement, une donnée ou un tableau ne peut être manipulé par du code Python qu’en passant par « xl » et le résultat du code Python ne peut être incorporé dans Excel que via « =PY() » qui retourne au choix soit une valeur (ou un ensemble de valeurs) soit un « objet Python ».
C’est notamment ainsi que Microsoft peut assurer la sécurité de cette intégration et éviter la multiplication de codes Pythons malveillants au sein des tableaux Excel.

Comment en profiter ?

Pour profiter de cette fonctionnalité en Preview, il ne suffit cependant pas d’intégrer le programme « Microsoft 365 Insider » et de télécharger la dernière mise à jour d’Excel (version 16.0.16818.20000). Il faut – et Microsoft a omis de le signaler, engendrant bien des interrogations – que l’accès à la fonction soit « activée » par l’éditeur, une activation qui se fait au compte-goutte !
Le problème c’est que bien des utilisateurs ne comprennent pas pourquoi, ayant téléchargé la mise à jour, ils voient bien des commandes « Insérer Python » dans l’aide et dans la liste des commandes,  mais ne peuvent concrètement les utiliser. Ils ont bien la dernière version d’Excel mais leur compte Microsoft 365 n’est pas encore validé et autorisé à accéder à la fonctionnalité.

Les dessous d’une intégration controversée

La grande originalité de cette intégration Python réalisée par Microsoft est de ne rien exécuter en local ! Tout se passe en réalité dans le cloud Azure !
Pour la réaliser, l’éditeur s’est en réalité appuyé sur des technologies développées par un acteur phare de la Data Science en Python : Anaconda. Grâce à ces technologies, le code saisi dans Excel est transformé en container (avec toutes les bibliothèques utiles déjà préconfigurées et adaptées pour Excel). Ce container est ensuite exécuté dans le Cloud Azure via le service Serverless « Azure Container Instances » (ACI).

Le principe a ses atouts et ses inconvénients.

Du côté des atouts :

– Le système est universel. L’intégration du code Python pourra fonctionner sur n’importe quel appareil, quelle que soit sa puissance. Dès lors, que l’on soit sous Windows, sous Mac, sous mobiles ou sous Office Web, les tableaux pourront exploiter Python. C’est un gros progrès sur VBA.

– Le système est sécurisé puisque le container est exécuté dans une bulle dans le cloud et ne peut interagir directement avec le système hôte (il n’a pas accès aux appareils, au réseau ou aux tokens utilisateur) évitant l’utilisation de codes malveillants en Python par les cyberattaquants. Par ailleurs, le code Python (qui ne peut interagir avec Excel que via la fonction « xl() » comme on l’a vu) n’a pas d’accès aux codes VBA et aux macros Excel.

– Le système ne nécessite aucune installation. Les classeurs Excel intégrant du Python pourront être partagés et co-édités comme n’importe quel fichier Excel, et les collaborateurs pourront rafraîchir le traitement et le résultat des scripts Python sans avoir à activer préalablement le langage de programmation dans leur propre installation.

Du côté des inconvénients :

– Les DSI et Data Scientists qui refusent toute utilisation du Cloud Microsoft (quelles que soient leurs raisons) ne pourront pas exploiter cette intégration de Python dans Excel.

– Cette intégration impose de disposer d’un abonnement Microsoft 365 (pas d’intégration possible aux utilisateurs des versions Office on-premises).

– Cette intégration ne sera pas gratuite ! Car Microsoft fera forcément payer d’une manière ou d’une autre l’exploitation de ses services Azure. L’éditeur n’a pas encore donné de détail sur la facturation. Durant la preview, l’utilisation de Python est intégrée à l’abonnement Microsoft 365. Mais l’éditeur a déjà prévenu qu’ « après l’aperçu, certaines fonctionnalités seront limitées sans licence payante », comprenez sans un abonnement spécial « Python ».

De manière générale, les communautés Excel et celles de la Data Science ont plutôt bien accueilli cette annonce. Bien sûr, certains regrettent l’absence d’exécution locale et l’impossibilité d’utiliser des bibliothèques non intégrées dans le container préparé par Anaconda. D’autres auraient préféré que Microsoft donne la priorité à davantage d’optimisation d’Excel plutôt que de jouer la nouveauté. Et d’autres regrettent que Python ne devienne pas le nouveau VBA au cœur des applications Office. Néanmoins, nombreux sont ceux qui saluent le potentiel ouvert par l’intégration du monde Excel et du monde Python. Un potentiel qui reste à expérimenter et à découvrir…

 

À lire également :

Les apps Windows Microsoft 365 désormais autorisées sous AWS Workspaces

Inspire 2023 : Microsoft 365 Copilot à prix fort…

IA : Microsoft lance Microsoft 365 Copilot et Business Chat

Google veut soigner l’intégration de Microsoft 365 dans ses Chromebooks

Microsoft Power Platform : R.I.P Excel ?

Un futur sans Excel est-il envisageable dans l’entreprise ?