Aller au contenu
OneKitly

Le fichier .ods qui est valide, et que ton lecteur refuse

Publié le 15/09/2026 · 4 min de lecture · Outils fichiers

Daniel Okonkwo

Daniel OkonkwoDéveloppeur front-end et rédacteur Tech chez OneKitly

Performance web · Formats de fichiers

Vérifié à partir de 3 sources

Voir le profil
En bref

Un .ods est une archive zip contenant une poignée de fichiers XML. La spécification n'en exige que très peu : un mimetype, un manifeste et un content.xml suffisent à faire un document de tableur valide, et styles.xml est explicitement facultatif. Les exportateurs minimaux prennent la spécification au mot — scripts, générateurs et plusieurs convertisseurs en ligne écrivent exactement ces trois entrées et s'arrêtent. Certains lecteurs refusent alors le document tout entier en signalant qu'ils ne trouvent pas styles.xml, ce qui ressemble à un message de corruption et n'en est pas un : le fichier est bon, c'est le lecteur qui est strict. Le correctif ici consiste à donner au lecteur ce qu'il réclame sans toucher à ce pour quoi il est venu. Quand un classeur refuse de s'ouvrir, les octets sont contrôlés pour une signature zip, décompressés, et si content.xml est présent alors que styles.xml manque, un styles.xml minimal mais valide est ajouté et l'archive relue. Cela n'ajoute aucun style — trois conteneurs vides satisfont l'exigence. La réparation n'est tentée qu'une fois, et si elle échoue l'erreur d'origine est relevée plutôt que remplacée, parce que masquer « fichier chiffré » derrière « ODS incomplet » t'envoie chercher au mauvais endroit.

L'OpenDocument rend styles.xml facultatif. Plusieurs lecteurs l'exigent et rejettent tout le document sans lui — « Cannot find file styles.xml in zip » sur un fichier qui n'a rien de cassé.

Facultatif dans une spécification n'est pas facultatif en pratique

C'est une figure récurrente dans les formats de fichiers, et bonne à reconnaître quand on la rencontre ailleurs. Une spécification dit qu'une partie peut être omise ; l'implémentation de référence l'écrit toujours ; tous les lecteurs sont donc testés sur des fichiers qui la contiennent toujours ; et le caractère facultatif devient en silence théorique. Le premier fichier qui l'exerce est signalé comme corrompu. La réponse honnête est de l'accepter — le fichier satisfait la norme — tout en écrivant la partie manquante quand on en produit un, parce qu'un document que seuls certains lecteurs ouvrent est pire qu'un document portant trois conteneurs de styles vides que personne ne regarde.

Quel format transmettre

L'ODS quand la personne en face travaille sous LibreOffice ou Collabora, quand une administration réclame un format ouvert, ou quand le fichier part dans une archive où une spécification documentée compte plus que la mode d'un logiciel. Le XLSX quand le destinataire utilise Excel ou une chaîne d'entreprise bâtie autour, ce qui est le cas le plus fréquent. Les deux portent les mêmes choses pour des tableaux ordinaires — cellules, feuilles, formules, formats de nombre — et les deux sont des archives zip de XML : aucun n'est plus ouvert que l'autre en un sens utile aujourd'hui. Ils divergent aux marges : tableaux croisés, macros et types de graphiques exotiques survivent à leur propre format et pas à l'autre.

Ce qu'il y a dans un .ods, et ce qui est exigé
Entrée du zipContientExigé par la spécification
mimetypeLe type du document, non compressé et en premierOui
META-INF/manifest.xmlLa liste des autres entréesOui
content.xmlLes cellules, les feuilles, les valeursOui
styles.xmlPolices, bordures, mise en pageNon — et c'est celui qu'on exige
meta.xml, settings.xmlAuteur, dates, positions de fenêtreNon
XLSX en ODSConvertis un classeur Excel au format OpenDocument .ods pour LibreOffice Calc.Essayer l'outil

Questions fréquentes

La réparation modifie-t-elle mes données ?
Non. Elle ajoute une entrée à l'archive et laisse toutes les autres octet pour octet telles quelles — content.xml, le manifeste et le mimetype ne sont pas touchés. Le fichier ajouté déclare trois conteneurs vides et aucun style : rien de l'apparence du document n'est décidé à ta place. Cela n'a lieu qu'en mémoire, sur la copie lue ; le fichier sur ton disque n'est pas modifié.
Mon .ods ne s'ouvre toujours pas. Que peut-il y avoir d'autre ?
L'erreur d'origine est celle qu'il faut lire, et elle n'est délibérément pas remplacée par la tentative de réparation. Les causes habituelles sont un document protégé par mot de passe, un fichier qui n'est pas un zip du tout — un .xls renommé, ou un téléchargement ayant enregistré une page d'erreur HTML sous la bonne extension — et un transfert tronqué. Comparer la taille à celle de la source est le plus rapide de ces contrôles.
Puis-je ouvrir un .ods et le réenregistrer en .ods ?
Oui, et c'est une façon de rendre un fichier minimal lisible partout : le lire ici et le réécrire, le résultat portant alors les parties qu'un lecteur strict attend. Garde en tête qu'un aller-retour par n'importe quel convertisseur conserve les cellules et laisse l'essentiel de la présentation — un fichier réécrit est un tableau propre, pas une copie de ton document.

Articles qui pourraient t'intéresser

Tous les guides
ExplicationLe classeur à vingt-trois formules qui n'en déclarait aucuneUne cellule peut contenir une formule et aucun résultat en cache. Une visionneuse qui saute les cellules vides jette la formule avec elles — et annonce que le fichier n'en a pas. Une option de lecture sépare les deux cas.ExplicationConvertir les formules en valeurs garde la réponse en cache, pas le calculUn fichier de tableur range à la fois la formule et la dernière réponse calculée par Excel. Retirer la formule laisse la réponse enregistrée — et laisse un vide partout où le fichier n'en portait pas.TutorielUn fichier par onglet, et ce qu'un découpage laisse derrière luiDécouper un classeur écrit un .xlsx par feuille, nommé d'après l'onglet. Cela emporte les valeurs et non les formules — ce qui est le bon comportement quand il s'agit d'envoyer à un service son propre onglet.ComparatifUne colonne nommée « Total (€) » ne peut pas être un nom d'élément XMLLe JSON prend le texte de ton en-tête comme clé, exactement tel quel. Le XML ne le peut pas — ses noms n'admettent ni espace, ni parenthèse, ni chiffre initial — ils sont donc normalisés, et savoir comment évite une surprise en aval.ExplicationUne cellule de trois espaces compte comme vide, et c'est vouluLes espaces sont la raison d'être de ces outils. Une ligne de blancs a l'air vide, ne l'est pas pour un test strict, et survit en silence à tous les filtres qu'on applique ensuite.TutorielFusionner des classeurs : une feuille chacun, ou un seul tableauDouze relevés mensuels peuvent devenir douze onglets ou un tableau de douze mois. Seul le second se trie et se somme d'un bloc — et c'est celui où les lignes d'en-tête demandent du soin.

Outils similaires

Sources

Tu as repéré une erreur dans cet article ?