Pourquoi Excel est un très bon outil de développement d'applications web? Et plus si affinités...

Adel GHAMRI, Décembre 2020

Je ne risque pas gros si je parie qu'Excel est l'outil de programmation le plus utilisé dans le monde, même si la plupart de ceux qui le manient si bien ne réalisent pas cela. Ils sont des développeurs chevronnés sans le savoir.

pc et logo excel
Excel pour le web

Il n'y a pas un domaine, un service, un métier où Microsoft Excel n'est pas utilisé. Que ce soit pour le stockage des données ou pour le calcul, Excel nous permet de résoudre de nombreux problèmes : calcul de la paie, amortissement d'un crédit, bilan, gestion de stock, analyse de génomes (avec précaution) , ou même le pronostic des résultats de la loterie pour les plus ambitieux. On peut également l'utiliser pour structurer un travail d'équipe depuis que le partage et l'accès concurrent à un fichier est rendu possible grâce à la version web.

Excel est un très bon outil de modélisation et de simulation.

En effet, celui qui distribue un calcul complexe sur plusieurs cellules et feuilles et qui joue avec des entrées pour observer des résultats en sortie, est simplement en train de faire de la simulation de modèle. Ce modèle peut représenter un problème financier, logistique ou même scientifique, tout y passe. La grille à deux dimensions qui parait infinie et qui nous laisse calculer dans n'importe laquelle de ses cellules et de référencer n'importe quelle autre est juste un modèle magique de calcul universel.

Mais Excel a aussi ses limites notamment quand il s'agit d'activités ou processus collaboratives. En effet, il n'est pas aussi hermétique et ergonomique qu'une application (web ou mobile). Il n'est pas très accessible sur les appareils nomades et ce n'est pas l'interface de choix à exposer aux clients ou partenaires. La confidentialité, sécurité et intégrité des données ne sont pas ses points forts non plus.

C'est dommage! Puisqu'il nous rend de valeureux services dans le business au quotidien. Est ce qu'il n'y aurait pas un moyen de créer un pont qui rejoint l'utile à l'agréable? C'est l'objet de cet article qui veut étudier la possibilité de partir d'une feuille Excel pour concevoir une solution web sur-mesure.

Il y a 4 propriétés qui font qu'Excel est un support prometteur pour modéliser une application web.

1. Présentation

Cette fameuse interface en grille, ne serait-elle pas une belle planche pour modéliser une page web? On pourra construire une maquette d'une page HTML en positionnant des blocks avec en bonus, un contenu dynamique. Si par-dessus, on se donne des règles de nommage des ranges, un paragraphe p_xxx, un gros titre h1_xxx, une image img_xxx, on pourra peut être automatiser la production de l'HTML et CSS?

On embarquera au passage les éléments de style : la police, les couleurs, les bordures... Et on pourra même contrôler au plus juste la "responsiveness" (mobile, pc, tablette) en maîtrisant les dimensions (nombre de colonnes, largeur/hauteur des colonnes/lignes).

Avant

ab cd
1                         
2                         
3                         
4                         

Après

ab cd
1TITRE
2Image=SI(ClICK;..)
3
4Copyright 2020Bouton

2. Logique et calcul

Une application a besoin de logique métier. C'est ce qu'il la distingue d'un site web statique ou le contenu ne change jamais. Inutile de répéter qu'Excel est un outil puissant de calcul. La seule limitation serait l'absence de boucles (Les fameuses : for et while) mais cela ne l'empêche pas d'être turing-complet. Si on arrive à produire du code à partir de nos belles formules éparpillées ici et là. Chaque feuille devient un module et chaque cellule devient une fonction et l'ensemble formera un graphe réactif de fonctions qui concentre notre savoir-faire calculable. Et si en plus, on connecte ce core à notre interface créée dans le paragraphe précédent, on aura parcouru un bon chemin vers notre objectif.

Cette programmation visuelle serait tellement plus rapide et accessible qu'elle libérera notre créativité. On dépensera notre effort intellectuel dans des activités à haute valeur ajoutée. Pourquoi pas concevoir des algorithmes avancés (IA?) qu'on pourra rapidement déployer sur une infrastructure cloud.

L'architecture de notre code généré par sa nature purement fonctionnelle est de facto extensible, réactive et parallélisable.

C'est sans doute exagéré de vouloir faire de l'IA avec Excel même si il offre un bon panel de fonctions pour débuter (régressions linéaires, statistiques, optimisation,...) de plus il s'y prête plutôt bien au calcul tensoriel. On ne peut pas prétendre atteindre un niveau equivalent aux environnements spécialisés. Cependant, dans notre optique de génération de code, si on arrive à produire un ou plusieurs models Excel qu'on multiplie tels des virus dans des clusters en les interconnectant, on pourrait très bien être tenté ne serait ce que par la curiosité de l'expérience...

3. La base de données

La base de données est le dépôt dans lequel une application stocke et puise ses données. Elle est persistante et structurante. Celle-ci est la dernière grosse pièce du puzzle avant de prétendre que notre fichier Excel est un modèle pour une application web. Heureusement que Microsoft a intégré le concept de table dans Excel qui plus est, on peut manipuler avec une syntaxe dédiée Structured Reference. Ceci nous permet donc d'émuler le fonctionnement d'une base de données relationnelles (sans la contrainte des relations).

Pour la plupart des problèmes, des modèles de données simples (flat) suffisent. D'ailleurs, les modèles de données complexes n'ont été inventés que pour simplifier le traitement et l'algorithmique codée par des hommes en aval. Dans notre optique de codage automatique, celà nous importe peu.

4. Les évènements et actions

L'utilisateur interagit avec l'application au travers du déclenchement d'évènements. Cela consiste généralement en un clic sur une url ou un bouton, mais peut aussi être une sélection, un défilement (scroll), un survol (hovering), une saisie dans un champs ou toute autre type de mouvement. L'intérêt d'un évènement est de donner le signal d'exécution à une action (confirmation de commande, changement de page...). Sur Excel, on trouve le concept d'hyperlien qui rejoint un peu le concept d'url (bien que moins structuré). On peut se servir de l'hyperlien pour émuler l'url ou pour émuler tout autre évènement en inscrivant une valeur dans une cellule donnée qui déclencherait une avalanche de calcul menant à un nouvel état de notre application (ou pardon note feuille Excel). Une action change l'état de notre système, on passe de non réservé à réservé, d'éncours à clos...etc.

On peut même songer à des évènements sous-jacents (et donc des sous-états ou états éphémères) qui ne sont pas déclenchés par l'utilisateur, mais par des conditions données des cellules. Une valeur particulière de cellule déclenche un évènement qui change une valeur et déclenche un autre évènement à son tour... Une réaction en chaîne d'évènements et actions se produirait et qui serait utile pour implémenter des séquences de communication à titre d'exemple.

Conclusion

On aura ici rassemblé tous les ingrédients pour construire un formalisme qui nous permettrait de modéliser des applications web dynamiques. Le modèle ainsi fabriqué serait le point d'entrée d'un générateur de code qui nous produirait toute la base de code en un seul clic : sql, python, javascript, html, css.

On a passé des détails et des complexités. Le but ici est d'exposer le concept général et l'esprit derrière cette méthodologie low code qui se servirait d'Excel comme EDI (Environnement de Développement Intégré).

L'intérêt n'est pas de transformer tout fichier Excel en application web, mais de se servir du premier quand le besoin du second se fait sentir.

Combien de milliers d'heures de productivité, peut-on gagner ? Combien de centaines de milliers d'euros, peut-on économiser ? Combien d'application qui n'aurait jamais exister faute de budget ou d'inspiration verra le jour ? Combien de personne qui a des idées géniales pourrait se mettre à développer des produits Tech pour son entreprise ou sa communauté avec la seule maîtrise d'Excel ?

De plus, il y a un gisement gigantesque de connaissances métiers capitalisées dans des fichiers Excel. Il suffirait de les transformer en applications effectives pour le plus grand bien des organisations.

Inscrivez-vous à notre newsletter

Vous serez informé(e) de nos articles et nouveautés.