Un .xlsx est, en secret, un ZIP rempli de XML
Le fait le plus utile à connaître sur les fichiers Excel modernes, c'est qu'ils ne forment pas un unique bloc monolithique. Depuis l'arrivée du format .xlsx, un classeur est une archive ZIP, et à l'intérieur de cette archive se trouve un petit arbre de fichiers XML, un jeu par feuille de calcul, plus des pièces partagées auxquelles les feuilles font référence. Vos nombres, vos formules et les noms de vos feuilles y sont stockés sous forme de texte brut dans ces parties XML. L'extension .xlsx n'est en réalité qu'un ZIP portant un autre nom.
Vous pouvez le constater vous-même en moins d'une minute. Faites une copie du fichier, renommez la copie de report.xlsx en report.zip, et ouvrez-la avec n'importe quel outil d'archivage. À l'intérieur, on trouve des dossiers comme xl/worksheets/, qui contient un fichier XML par feuille, xl/sharedStrings.xml, qui renferme le texte, et xl/workbook.xml, qui énumère les feuilles. Ouvrez le fichier d'une feuille dans un éditeur de texte et vos valeurs de cellules sont là, sous vos yeux.
Un .xlsx est un ZIP : chaque feuille est une partie XML, et l'archive conserve un répertoire à la fin. Cassez le répertoire et Excel se braque, alors que les feuilles à l'intérieur restent lisibles.
C'est pourquoi un classeur corrompu est le plus souvent récupérable. La corruption se loge à l'un de deux endroits : l'enveloppe ZIP qui entoure les parties, ou le XML à l'intérieur d'une partie. Un téléchargement tronqué casse le répertoire du ZIP, la même défaillance qui produit « fin inattendue de l'archive » dans une archive ordinaire, tandis que les feuilles elles-mêmes restent intactes avant la coupure. Quand le problème vient de l'enveloppe, la reconstruire vous rend vos données, car les données n'ont jamais été endommagées au départ.
Essayez d'abord Ouvrir et réparer, la fonction d'Excel
Si vous avez Excel sous la main, sa réparation intégrée est le premier pas honnête, et elle ne coûte rien. Ouvrez Excel, allez dans Fichier puis Ouvrir, et accédez au fichier. Sélectionnez-le d'un simple clic, puis cliquez sur la petite flèche à côté du bouton Ouvrir et choisissez Ouvrir et réparer. Excel vous propose deux options. Réparer tente de récupérer le classeur entier, et Extraire les données extrait les valeurs et les formules quand une réparation propre n'est pas possible. Lancez d'abord Réparer, et repliez-vous sur Extraire les données en cas d'échec.
Faites-le sur une copie, pas sur l'original : les outils de réparation fonctionnent mieux à partir d'une source intacte, et si Ouvrir et réparer abîme davantage le fichier, il vous reste l'original pour la tentative suivante. Quand la fonction renvoie une grille vide, déclenche sa propre erreur, ou quand vous n'avez pas Excel du tout, la structure ZIP-et-XML sous-jacente est votre voie d'entrée, c'est là que reprend le parcours des erreurs exactes ci-dessous.
Les erreurs exactes, décodées
Voici les chaînes que les gens collent dans une barre de recherche, reproduites ici mot pour mot pour que vous puissiez retrouver la vôtre. La première est la plus fréquente :
Excel cannot open the file 'name.xlsx' because the file format or file extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file.
Ce message fait deux choses à la fois, et c'est pour cela qu'il déroute. Il se déclenche aussi bien quand le fichier est réellement corrompu que quand le fichier n'est pas vraiment un .xlsx, et sa formulation ménage délibérément les deux cas. Son cousin plus court, The file is corrupt and cannot be opened., pointe plus nettement vers une corruption réelle. L'autre message que vous croiserez apparaît quand Excel parvient à ouvrir le classeur mais trouve des dommages à l'intérieur d'une partie :
Excel found unreadable content in 'name.xlsx'. Do you want to recover the contents of this workbook? If you trust the source of this workbook, click Yes.
Cliquez sur Oui. Cette invite, c'est Excel qui propose de sauver ce qu'il peut d'un XML partiellement endommagé, et elle récupère souvent l'essentiel du classeur, en abandonnant parfois un graphique ou un élément de mise en forme qu'il n'a pas su analyser. Une suite très proche, We found a problem with some content, est la même proposition formulée autrement. Chacun de ces messages signale que les données sont en grande partie présentes et que seule la structure qui entoure une partie d'entre elles est endommagée. Pour un examen plus approfondi du message « non valide » et de ses deux causes, voyez « Excel ne peut pas ouvrir le fichier ».
Ce qui se récupère, et ce qui est fragile
La récupération d'un classeur corrompu n'est pas du tout-ou-rien, et ici les attentes comptent davantage qu'avec la plupart des types de fichiers : vous avez besoin de savoir si le nombre de la cellule G47 est bien revenu. La règle suit la structure. Plus les données sont simples et centrales, mieux elles survivent.
Les valeurs et le texte se récupèrent bien. Le contenu de vos cellules — nombres, dates et texte — réside dans le XML de la feuille de calcul et dans la partie des chaînes partagées sous forme de simple texte. Quand ces parties sont lisibles, les données reviennent fidèlement. C'est la partie qui compte le plus, et la plus robuste.
Les formules se récupèrent en général. Une formule est stockée sous forme de texte à côté de sa dernière valeur calculée, si bien qu'elle revient d'ordinaire intacte. Si des liens internes ou des noms définis ont été endommagés, certaines formules reviennent sous la forme de leur résultat mis en cache plutôt que de l'expression vivante, mais le nombre que vous voyiez est préservé dans tous les cas.
La structure des feuilles se récupère. Les noms des feuilles, l'ordre des onglets et le contenu de chaque cellule sont décrits dans un XML qui se reconstruit proprement lorsqu'il est présent. Un classeur qui n'a perdu que son enveloppe ZIP revient généralement avec toutes ses feuilles à leur place.
La mise en forme est fragile. Les styles de cellules, les couleurs, les largeurs de colonnes et la mise en forme conditionnelle sont stockés séparément des valeurs et y font référence par un index. Si la partie des styles est endommagée ou qu'un index devient obsolète, les nombres survivent mais peuvent revenir sans habillage : les données sont justes, la présentation est peut-être à refaire.
Les graphiques, les caches de tableaux croisés dynamiques et les objets incorporés sont fragiles. Ces parties complexes font référence à des plages situées ailleurs dans le classeur : quand la structure qui les entoure est endommagée, ce sont les premières à casser. Un classeur récupéré peut s'ouvrir avec un graphique manquant ou un tableau croisé dynamique qui a besoin d'être actualisé.
Les macros VBA ne survivent souvent pas. Le code des macros réside dans une partie binaire (vbaProject.bin), et non dans le XML : il ne profite donc pas du sauvetage fondé sur le texte qui récupère vos cellules. Si les macros sont critiques, conservez toute copie plus ancienne que vous pourrez trouver, car un .xlsx récupéré peut s'ouvrir parfaitement en tant que données alors que le code qui les sous-tend a disparu.
Le classeur qui n'a jamais été un .xlsx
Avant de traiter un fichier comme corrompu, écartez le cas de l'imposteur, car il est fréquent et le correctif est gratuit. Beaucoup d'applications web et de systèmes de reporting proposent un bouton « Exporter vers Excel » qui produit en réalité un tableau HTML ou un fichier CSV, puis l'étiquette report.xlsx pour qu'il s'ouvre dans Excel par défaut. Le fichier est parfaitement valide ; il n'est simplement pas du format que son nom prétend. Excel l'ouvre, remarque l'incohérence et affiche le même message « le format ou l'extension du fichier n'est pas valide » que déclenche un fichier réellement cassé.
Vous pouvez le repérer en quelques secondes. Ouvrez le fichier dans un éditeur de texte brut. Si la première chose que vous voyez est <html> ou une balise <table>, c'est un export HTML déguisé ; si vous voyez des lignes de vos données séparées par des virgules, c'est un CSV. Dans les deux cas, la solution n'est pas du tout une réparation. Renommez-le en .html ou .csv et ouvrez-le, ou ouvrez Excel et utilisez Données puis À partir d'un texte pour l'importer proprement. Lancer un outil de réparation sur un fichier HTML sain n'accomplirait rien : cette vérification vous évite donc de résoudre le mauvais problème.
Les données financières n'ont pas leur place sur le serveur d'un inconnu
Les feuilles de calcul, c'est là où la confidentialité cesse d'être abstraite. Le classeur corrompu posé sur votre bureau est vraisemblablement une paie, une liste de clients ou un jeu de comptes, et le service de réparation en ligne classique vous demande de téléverser exactement cela sur ses serveurs pour le traiter. Les données quittent votre machine et se retrouvent sur une infrastructure que vous ne contrôlez pas.
Il n'y a aucune raison technique pour que la réparation fonctionne ainsi. La même analyse et la même reconstruction peuvent s'exécuter dans votre propre navigateur, sur votre propre processeur, sans que le fichier ne traverse jamais le réseau. Dans ce cas, il n'y a rien sur un serveur à pirater, à conserver ou à réquisitionner, car le fichier n'a jamais été envoyé où que ce soit. Pour les feuilles de calcul sensibles, cette différence est toute la décision : confirmez donc comment un outil traite le fichier avant de lui confier vos chiffres.
FAQ
Puis-je récupérer un fichier Excel corrompu sans Excel ?
Souvent oui. Un fichier .xlsx est une archive ZIP de parties XML : les valeurs des cellules, les formules et la disposition des feuilles y sont stockées sous forme de texte lisible à l'intérieur de l'archive. Un outil de réparation, ou à défaut un outil ZIP accompagné d'un éditeur de texte, peut en extraire ces parties même quand Excel lui-même refuse d'ouvrir le classeur. Vous n'avez pas besoin d'avoir Excel installé pour atteindre les données, même s'il vous faudra un tableur pour visualiser le résultat récupéré.
Comment utiliser Ouvrir et réparer dans Excel ?
Dans Excel, allez dans Fichier puis Ouvrir, et accédez au fichier. Cliquez une fois dessus pour le sélectionner, puis cliquez sur la petite flèche à côté du bouton Ouvrir et choisissez Ouvrir et réparer. Excel propose deux options : Réparer, qui tente de récupérer le plus de données possible, et Extraire les données, qui extrait les valeurs et les formules quand une réparation complète échoue. Essayez d'abord Réparer et, si vous obtenez une grille vide ou une erreur, lancez Extraire les données. Faites-le sur une copie, afin que l'original reste intact pour d'autres outils.
Pourquoi Excel dit-il que le format ou l'extension du fichier n'est pas valide ?
Ce message a deux causes courantes. Soit le fichier est réellement corrompu, le plus souvent tronqué au point que sa structure ZIP est incomplète, soit le fichier n'est en réalité pas un .xlsx du tout. Un cas fréquent : une application web qui exporte un rapport en HTML ou en CSV mais le nomme avec une extension .xlsx. Excel l'ouvre, constate que le contenu ne correspond pas à l'extension et proteste. Vérifiez ce qu'est réellement le fichier avant de conclure à une corruption, car un fichier mal étiqueté est à un simple renommage de s'ouvrir, et non à une réparation.
Puis-je ouvrir un fichier xlsx comme un ZIP ?
Oui. Faites une copie, changez son extension de .xlsx en .zip et ouvrez-la avec n'importe quel outil d'archivage. À l'intérieur, vous trouverez une arborescence de fichiers XML : les feuilles de calcul se trouvent sous xl/worksheets, le texte partagé sous xl/sharedStrings.xml et l'index du classeur dans xl/workbook.xml. Ce n'est pas une astuce ; c'est exactement ainsi que le format est défini. Parcourir ces parties est un bon moyen de confirmer que vos données sont toujours présentes avant de réparer, même si les réassembler à la main en un classeur fonctionnel est fastidieux, ce qu'un outil de réparation automatise justement.
Est-il sûr de téléverser des feuilles de calcul financières vers un outil de réparation en ligne ?
Cela dépend entièrement de l'endroit où va le fichier. La plupart des services de réparation en ligne téléversent votre classeur sur leurs serveurs pour le traiter, ce qui signifie que votre paie, votre liste de clients ou vos comptes quittent votre machine et se retrouvent sur l'ordinateur de quelqu'un d'autre. Si l'outil effectue plutôt la réparation dans votre propre navigateur, le fichier ne quitte jamais votre appareil et il n'y a rien à faire fuiter sur un serveur. Lisez comment fonctionne un outil donné avant de lui confier des données sensibles, et privilégiez celui qui traite en local.
À lire aussi : la défaillance ZIP à l'origine de la plupart des classeurs cassés dans « fin inattendue de l'archive », et le guide des chaînes exactes sur « Excel ne peut pas ouvrir le fichier ».