Excel vers Markdown : de la grille du tableur aux tableaux à barres
Copier-coller une plage Excel dans un fichier Markdown fonctionne presque — jusqu'à ce que la feuille ait des cellules fusionnées, des colonnes de formules larges ou trois feuilles au lieu d'une. Le tableau en texte brut obtenu est lisible dans le bloc-notes, mais se casse quand vous le collez dans GitHub, Obsidian ou un wiki, car le convertisseur n'a jamais compris la structure qu'il regardait.
Cet article passe en revue ce que fait réellement une conversion xlsx → Markdown : comment conserver chaque feuille de calcul, déplier les plages fusionnées en véritables cellules, préserver les dates et les nombres que Excel lui-même affiche, et aboutir à des tableaux à barres GFM qui se rendent partout. Tout ce qui est décrit ici tourne dans votre navigateur — aucun upload, aucun compte, aucun serveur qui touche votre classeur.
Le tableur et le tableau Markdown ne sont pas la même chose
Un classeur xlsx est un ZIP de XML. À l'intérieur vivent plusieurs feuilles de calcul, chacune une grille rectangulaire de cellules. Une cellule peut être vide, contenir une chaîne, une date stockée comme numéro de série, une formule ou une valeur formatée comme 1 240,50. Des plages de cellules peuvent être fusionnées en une seule cellule visible. Toute la structure a une mise en page, des formules et des métadonnées d'affichage que les tableaux Markdown n'ont simplement pas la place de contenir.
Un tableau Markdown à barres — la forme GFM que GitHub, Obsidian et la plupart des wikis rendent — est deux lignes de métadonnées suivies d'une ligne par ligne de données, chaque ligne ayant le même nombre de colonnes. Pas de cellules fusionnées, pas de formules, pas de mise en page. Le travail d'un convertisseur fidèle est la traduction entre ces deux mondes : aplanir la grille en lignes et faire en sorte que chaque cellule contienne la valeur que Excel montrerait réellement à l'écran.
Exporter chaque feuille, pas seulement la première
La plupart des outils rapides n'exportent que la feuille active, laissant silencieusement tomber le reste du classeur. Une vraie conversion doit parcourir chaque feuille de calcul, sauter celles qui sont complètement vides et émettre chacune comme son propre tableau Markdown — avec le nom de la feuille comme titre de niveau 2 au-dessus. Ainsi votre classeur arrive comme un seul document Markdown qui reflète encore la structure originale.
Sur ce site, la valeur par défaut est « toutes les feuilles », mais vous pouvez aussi choisir « première feuille uniquement » dans les options de feuilles de calcul quand vous n'en voulez qu'une. Les feuilles vides et celles qui ne contiennent que des en-têtes sont automatiquement filtrées pour ne pas produire un h2 cassé sans tableau en dessous.
Cellules fusionnées : le problème invisible
Les cellules fusionnées sont la raison numéro un pour laquelle le copier-coller produit des tableaux cassés. Quand Excel fusionne A1:D1 en une seule cellule visible, la grille sous-jacente a toujours quatre cellules — seule A1 contient la valeur, B1 à D1 sont vides. Un copier-coller naïf ou un convertisseur simple émet quatre colonnes, trois d'entre elles vides, ce qui casse le décompte des lignes et produit un tableau qu'aucun parseur Markdown ne rendra correctement.
La solution s'appelle le déploiement : SheetJS nous indique chaque plage fusionnée dans le classeur avant que nous construisions le tableau. Nous copions la valeur de la cellule en haut à gauche de chaque fusion dans toutes les autres cellules de cette plage, de sorte que la grille que nous envoyons à Pandoc n'ait aucun trou. Le tableau à barres résultant a le même nombre de cellules que la grille visible de Excel, chaque ligne s'aligne, et le tableau se rend proprement.
Dates, devises et nombres : montrer ce que Excel montre
Excel stocke les dates comme numéros de série — 46095 signifie le 15 janvier 2026. Les valeurs numériques brutes comme cela sont inutiles en Markdown, mais un convertisseur qui reformate avec des règles arbitraires se trompera sur les dates (cette cellule est-elle 1/2 ou 2/1 ?). La seule source digne de confiance est le texte que Excel lui-même affiche, que SheetJS lit directement avec l'option raw:false.
Devises, pourcentages, décimales, séparateurs de milliers — tout passe comme le texte que vous voyez dans la barre de formule. 1 240,50 reste 1 240,50, 0,12 reste 12 % si Excel l'affiche ainsi, et 15/1/26 reste exactement cela au lieu d'être silencieusement reformaté en 2026-01-15.
Formules versus valeurs
Les cellules Excel peuvent contenir soit une formule (=SOMME(A1:A10)) soit sa valeur calculée (1240,50). Les tableaux Markdown ne peuvent contenir que des valeurs. Certains convertisseurs tentent de préserver la syntaxe de la formule, ce qui est rarement utile hors Excel. Nous lisons la valeur calculée — le nombre ou le texte que Excel montrerait après avoir évalué la formule — et nous émettons celle-ci. Si vous avez besoin des formules elles-mêmes, exportez d'abord le classeur en CSV ; ce convertisseur est pour le résultat lisible, pas pour le calcul.
Tableaux larges et ce qu'en faire
Une feuille de calcul avec quinze colonnes convertit sans problème — Pandoc émet un tableau à barres parfaitement valide. Que cela soit beau ou non dépend de où vous le lisez. La plupart des rendus Markdown enveloppent naturellement les tableaux à barres ; Obsidian, GitHub et Hugo gèrent bien les largeurs. Pour les destinations qui ne le font pas, divisez le classeur en feuilles plus étroites avant de convertir, ou acceptez qu'un tableau large est la représentation honnête et laissez le rendu défiler horizontalement.
Ce que nous ne faisons pas, c'est supprimer silencieusement des colonnes ou réduire les données. Le tableau qui sort est exactement la grille qui était dans le classeur — pas de surprises, pas de colonnes manquantes.
Pourquoi deux moteurs : SheetJS lit, Pandoc formate
Ce site utilise SheetJS Community Edition pour le parsing du classeur, puis remet le tableau HTML résultant à Pandoc pour émettre du Markdown (GFM). SheetJS gère les détails internes délicats de Excel — plages fusionnées, séries de dates, formats d'affichage, le propre paquet ZIP. Pandoc gère les détails dialectaux délicats du Markdown — syntaxe du tableau à barres, indices d'alignement et la conformité finale CommonMark.
Faire tourner les deux dans le navigateur signifie que rien ne touche un serveur. La bibliothèque SheetJS n'est téléchargée que lorsque vous déposez réellement un fichier xlsx, et Pandoc réside déjà dans l'onglet depuis votre première utilisation du convertisseur. Le temps total de bout en bout sur un classeur typique à plusieurs feuilles est inférieur à dix secondes.