XLSX

Qu’est-ce qu’un fichier XLSX ?

Le format d’Excel depuis 2007. Plusieurs feuilles, des formules, de la mise en forme.

Ce qu’est XLSX

XLSX est un conteneur : une enveloppe pour des flux encodés par autre chose. Il est utilisé pour la retouche.

L’extension est .xlsx et le nom complet Excel Workbook. L’un et l’autre comptent moins que ce que le fichier peut contenir, et c’est le sujet du reste de cette page.

D’où vient XLSX

Microsoft l’a publié en 2007. La spécification est ECMA-376.

L’âge est utile à connaître pour une raison pratique : plus un format est ancien, plus les programmes ont eu le temps de l’apprendre.

La spécification est publique

Elle est publiée intégralement : n’importe qui peut l’implémenter à partir du document plutôt qu’en l’observant, et c’est pourquoi ce format apparaît dans tant de programmes et pourquoi des fichiers écrits il y a vingt ans s’ouvrent encore. Une spécification publiée n’est pas pour autant libre de redevances : quand un format enveloppe un codec, les brevets sont une question à part, que la norme ne tranche pas.

Il peut contenir plusieurs pages dans un seul fichier

Un fichier XLSX n’est pas limité à une page, et cela compte au moment de le convertir vers quelque chose qui l’est : une conversion produit un fichier contenant une seule page — la première, sauf si le convertisseur vous laisse choisir laquelle.

Il ne peut pas contenir de macros

XLSX ne peut pas transporter de code exécutable. C’est pourquoi les serveurs de messagerie et les portails documentaires le laissent passer là où ils arrêtent son jumeau à macros.

Quel genre de document c’est

XLSX contient un tableur : des cellules, des formules et les feuilles autour.

C’est ce qui décide de la conversion : un tableur devient une zone d’impression, et l’endroit où les colonnes se coupent est une décision que quelqu’un doit prendre.

Ce qu’il fait pour se protéger

XLSX porte un chiffrement facultatif.

Un fichier chiffré doit être déverrouillé avant que quoi que ce soit puisse le convertir, ici comme ailleurs. Un mot de passe n’est pas quelque chose qu’un convertisseur peut contourner, et à celui qui prétendrait le faire il ne faudrait surtout pas confier le fichier.

Ce qui ouvre XLSX

Microsoft Excel, LibreOffice Calc et Google Sheets le lisent, comme la plupart des programmes du même genre.

Quand un fichier ne s’ouvre pas, le format est rarement en cause : le plus souvent, c’est le programme qui est plus ancien que lui. Convertir vers quelque chose de plus ancien est le contournement fiable, et c’est à cela que sert le reste de ce site.

L’ouvrir dans un navigateur

Aucun navigateur ne le lit.

C’est de loin la raison la plus fréquente de le convertir : non pas que le format soit mauvais, mais que l’endroit où vous voulez montrer le fichier ne sache pas le lire.

C’est un format de travail

XLSX est fait pour être ouvert et modifié. Gardez le fichier dans ce format tant que le travail dure, et exportez depuis lui chaque fois qu’une version finie est nécessaire.

Un fichier ZIP plein de XML, et vous pouvez regarder dedans

Renommez un .xlsx en .zip et ouvrez-le. À l’intérieur, un petit arbre de répertoires : un fichier XML par feuille de calcul, une table partagée de chaque chaîne distincte du classeur, un fichier de styles, et un dossier de propriétés du document. Toute image ou objet embarqué s’y trouve comme un fichier séparé.

Ce n’est pas une curiosité. C’est pourquoi un classeur corrompu peut parfois être récupéré en ouvrant l’archive et en extrayant le XML de la feuille, pourquoi les tailles de fichier se comportent comme elles le font, et pourquoi un classeur peut porter des choses que personne ne se souvient y avoir mises. Le format est inspectable avec des outils que tout le monde a déjà.

La rupture de 2007, et ce qu’elle a corrigé

XLSX a remplacé le format binaire XLS avec Office 2007. L’ancien format était un document composé binaire que seul Microsoft comprenait entièrement ; le nouveau est documenté, et c’est la raison pour laquelle LibreOffice, Google Sheets, Numbers et des dizaines de bibliothèques peuvent le lire de façon fiable là où la prise en charge de XLS a toujours été du tâtonnement partiel.

Les limites ont bougé en même temps et valent la peine d’être connues parce que les gens les rencontrent encore : une feuille contient 1 048 576 lignes et 16 384 colonnes, contre 65 536 et 256 auparavant. Un export tronqué à exactement 65 536 lignes est un outil qui écrit l’ancien format, pas une coïncidence.

Les formules sont stockées deux fois

Chaque cellule de formule porte deux choses : la formule en texte, et le dernier résultat calculé. C’est pour cela qu’un classeur s’ouvre en affichant immédiatement les valeurs plutôt qu’en recalculant cent mille cellules d’abord, et c’est pour cela qu’un outil qui lit XLSX sans moteur de formule peut tout de même rapporter les bons chiffres.

Cela veut aussi dire que la valeur en cache peut être périmée. Un fichier écrit par un programme qui ne calcule pas — beaucoup de bibliothèques d’exportation ne le font pas — contient des formules sans résultats, et chaque cellule se lit comme zéro ou vide jusqu’à ce qu’Excel l’ouvre. Si un classeur généré paraît vide là où il devrait avoir des totaux, c’est la cause habituelle.

Quinze chiffres, et après cela cela cesse d’être exact

Les nombres sont stockés en virgule flottante double précision, qui tient environ quinze chiffres significatifs. Un numéro de carte de crédit à seize chiffres, une longue référence de commande ou un identifiant national (numéro de Sécurité sociale, SIRET à quatorze chiffres) perd ses derniers chiffres — de façon permanente, dans le fichier, pas seulement à l’affichage.

La défense consiste à passer la colonne en texte avant que les données n’arrivent, de sorte que les chiffres soient stockés comme des caractères plutôt que comme une quantité. C’est le même problème sous-jacent que les zéros initiaux qui disparaissent des codes postaux, et la même règle s’applique : un identifiant n’est pas un nombre du seul fait qu’il est composé de chiffres.

Ce qui voyage dans le classeur sans que vous l’ayez voulu

Les propriétés du document portent l’auteur, la dernière personne à avoir enregistré, le nom de société de l’installation Office et les dates de création et de modification. Les lignes masquées, les colonnes masquées et les feuilles masquées sont masquées, pas absentes — les données sont dans le XML et n’importe qui peut les lire.

Les liens externes sont le tranchant le plus net. Une formule qui se réfère à un autre classeur stocke le chemin complet depuis lequel il était lié, et ce chemin nomme souvent un partage réseau, un client, ou une structure de dossiers qui décrit l’activité. Effacer les propriétés du document ne les retire pas ; elles vivent dans la feuille, pas dans les métadonnées.

Les macros ne sont pas autorisées dans un XLSX

C’est délibéré et c’est l’une des meilleures décisions du format. Un fichier se terminant en .xlsx ne peut pas contenir de code de macros ; un classeur avec macros doit être enregistré en .xlsm, qui s’annonce dans l’extension. Renommer un XLSM en XLSX ne fait pas passer le code en contrebande — le classeur perd le code, c’est tout.

Cela donne une règle utile pour tout ce qui arrive par courriel : un .xlsx ordinaire ne peut pas exécuter de code à l’ouverture. Le risque vit avec .xlsm et l’ancien .xls, qui peuvent tous les deux, et ni l’un ni l’autre ne le dit aussi clairement.

Un bon format de travail, un mauvais format d’échange

Pour une personne, XLSX est excellent : les types sont déclarés, les dates restent des dates, les longs nombres gardent leur mise en forme, et le fichier porte sa propre structure de sorte que rien n’a à être deviné à l’ouverture. Envoyer un tableur à un collègue, c’est le bon choix plutôt que CSV à chaque fois.

Pour un programme, il est plus lourd que le travail ne l’exige en général. Le lire signifie décompresser une archive et parser plusieurs documents XML avec une bibliothèque, là où CSV n’a besoin d’aucune bibliothèque et streame depuis un fichier plus gros que la mémoire. C’est la séparation honnête : XLSX quand c’est un humain qui ouvre, CSV quand c’est une machine qui lit.

Quand le classeur refuse de s’ouvrir

La cause la plus courante n’est pas un dommage mais un téléchargement interrompu ou réécrit par une passerelle de messagerie. Si l’archive elle-même refuse de décompresser, le fichier est tronqué et aucune réparation n’y changera rien — récupérez-le depuis la source.

Si l’archive s’ouvre mais qu’Excel refuse le classeur, le XML de la feuille est en général intact et le dommage est dans l’une des petites parties autour. La commande Ouvrir et réparer d’Excel en récupère la plupart, et quand elle n’y arrive pas, extraire le XML de la feuille à la main depuis l’archive fait au moins sortir les données.

Les données, au même endroit

Identifiants et origine du format XLSX.
Extension.xlsx
Type de médiaapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Publié parMicrosoft
Première publication2007
SpécificationECMA-376