L'ODS est un classeur OpenDocument, le format natif de LibreOffice Calc. Le CSV est un tableau et rien d'autre, sans formules ni mise en forme de cellule. LibreOffice se tient entre les deux, et cette page dit exactement ce qui arrive à un fichier ODS en route vers le CSV.
Ce qui s'exécute quand un fichier ODS devient un CSV
LibreOffice 24.2, sur une machine que nous louons et que nous surveillons. Votre fichier ODS est envoyé une fois, LibreOffice s'exécute une fois, le fichier CSV revient, et aucun des deux fichiers n'est conservé. ODS vers CSV fait partie des 3649 paires sur lesquelles ce moteur a été sondé avec un vrai fichier, et c'est pour cela que cette page existe quand celles que la sonde n'a pas su prouver n'existent pas.
Ce qui survit du fichier ODS dans le fichier CSV
Chaque valeur, en tant que valeur. Ce qu'une formule a calculé atterrit dans le CSV sous la forme du nombre qu'elle a produit, prêt pour tout ce qui lit du CSV.
Un CSV que tout sait ouvrir. Pas de version, pas de schéma, pas de bibliothèque : c'est le format vers lequel on se tourne quand ce qui se trouve en face est un script plutôt qu'une personne.
Ce que la conversion ODS vers CSV vous coûte
Tout ce qui n'est pas le contenu lui-même : la mise en forme, les titres, les images, et toute structure dont le fichier ODS se servait pour se décrire. Un CSV est une chose plate, et c'est voulu.
Les formules, remplacées par ce qu'elles calculent en l'état. Mesuré sur cette paire : la fonction SOMME du fichier ODS arrive sous forme de résultat et non de formule, si bien que le CSV est un instantané et non un modèle.
Toutes les feuilles sauf la première. LibreOffice écrit une seule feuille dans un CSV parce qu'un CSV n'a aucun moyen d'en porter deux, et il prend la première. Un classeur de douze onglets revient en un seul tableau, et le moteur le dit dans un en-tête plutôt que de vous le laisser découvrir plus tard.
D'où viennent les fichiers ODS et CSV
ODS. LibreOffice Calc et OpenOffice l'écrivent nativement. C'est la norme ISO/IEC 26300, ce qui explique que plusieurs administrations le réclament par son nom dans leurs marchés, et qu'un fichier qui arrive en ODS vienne souvent de l'une d'elles.
CSV. Tout l'écrit et rien ne s'accorde dessus. Il existe une RFC, la 4180, et elle décrit l'usage courant plutôt qu'elle ne le commande : guillemets, échappements et fins de ligne varient d'un producteur à l'autre. Un CSV est le plus petit dénominateur commun, ce qui explique à la fois qu'il soit partout et qu'il surprenne.
Si un modèle doit lire le fichier CSV
La structure est ce qui subsiste du fichier ODS, et la structure est ce dont un modèle a besoin. ODS en entrée, CSV en sortie, avec l'arbre des titres intact plutôt qu'aplati en un seul long paragraphe.
ODS vers CSV, mesuré plutôt que promis
En passant ODS vers CSV sur le moteur réel avec un vrai fichier, LibreOffice a écrit 89 octets au format CSV en 1,1 secondes, machine par ailleurs au repos. C'est un fichier ODS un jour donné et non une moyenne, et c'est pourquoi le nombre est donné avec le fichier qui l'a produit.
Le verdict ODS vers CSV a été obtenu par la relecture du type interne et la recherche d'un mot témoin, c'est-à-dire que la sortie a été relue et reconnue. Le contrôle employé compte, parce qu'ils ne prouvent pas tous la même chose, et un code de statut 200 ne prouve strictement rien sur ce que le fichier CSV contient.
Le même fichier ODS, envoyé ailleurs
Les autres sorties que la sonde a mesurées à partir d'un fichier ODS, pour que le coût du choix du format CSV se lise face à quelque chose. Les tailles ne se comparent pas d'un moteur à l'autre, chaque famille ayant été sondée avec son propre fichier témoin ODS.
ODS vers PDF : 12 884 octets en 1,1 secondes, vérifié par une signature de format.
ODS vers HTML : 2 066 octets en 1,0 secondes, vérifié par la relecture du type interne et la recherche d'un mot témoin.
Les autres routes vers CSV, et ce qu'elles ont mesuré
Parmi les routes publiées vers CSV, ODS est la troisième plus grosse sortie des 5 mesurées. Les fichiers témoins diffèrent : ce classement porte sur la sonde et non sur votre document.
YAML vers CSV : 39 octets en moins d'un dixième de seconde.
XLSX vers CSV : 89 octets en 1,1 secondes.
JSON vers CSV : 39 octets en moins d'un dixième de seconde.
XLS vers CSV : 89 octets en 0,9 secondes.
Ce que nous ne prétendrons pas sur ODS vers CSV
Un fichier ODS de plus de 25 Mo est refusé avant la fin de l'envoi plutôt qu'après, pour que vous n'attendiez pas un refus.
Une conversion ODS vers CSV qui dépasse 90 secondes est tuée, et le processus LibreOffice avec elle. Une exécution abandonnée resterait posée sur l'un des deux cœurs de la machine jusqu'à ce que quelqu'un le remarque.
LibreOffice est sérialisé exprès, un document à la fois par travailleur, parce que chaque instance de soffice prend 150 à 300 Mo sur une machine qui en a 3,8 Go. Plafond mesuré : 23 conversions ODS en vol et environ 0,9 par seconde en régime établi. Au-delà, la file répond 429 plutôt que de s'écrouler, ce qui a été testé à 32 simultanées.
Les deux tiers des paires qu'on pourrait imaginer dans cette famille n'existent pas, et il vaut mieux savoir pourquoi avant d'en chercher une. LibreOffice convertit à l'intérieur de l'application qui a ouvert votre fichier : depuis un tableur, il écrit des tableurs, du texte brut, du HTML et du PDF, et il n'écrira pas de .docx quelle que soit la façon dont on le lui demande. Il ne rend rien du tout plutôt que quelque chose de faux. Sur 113 combinaisons sondées sur ce moteur, 64 sont revenues avec un vrai fichier et le reste a été refusé net.
Cette paire fait partie des 64. Elle a été prouvée en envoyant un vrai fichier ODS par la route vivante et en lisant le CSV qui revenait : non pas son extension, ses entrailles, plus un mot témoin planté dans la source et retrouvé dans la sortie. Les propriétés nommées plus haut sur cette page viennent d'une seconde sonde qui les cherche une à une.
Le moteur dit la vérité sur la limite à la première feuille au lieu de la cacher : la réponse porte un en-tête X-Sheets-Exported qui l'annonce. On le mentionne ici parce qu'un en-tête se rate facilement et qu'une feuille manquante, non.
Un fichier ODS à la fois, choisi dans le navigateur. Il n'y a rien d'autre à régler et rien d'autre à proposer.
ODS vers CSV : les questions que l'on pose
Qu'est-ce qui convertit vraiment mon fichier ODS en CSV ?
C'est LibreOffice qui s'en charge, en 24.2, sur une machine que nous louons et que nous surveillons. Ni astuce de navigateur, ni service d'un tiers : le fichier ODS est envoyé une fois, LibreOffice s'exécute une fois, le CSV revient, et aucun des deux fichiers n'est conservé ensuite.
Combien de temps prend une conversion ODS vers CSV ?
Sur le fichier utilisé par la sonde, LibreOffice a mis 1,1 seconde et écrit 89 octets de CSV. C'est une mesure réelle sur un fichier ODS réel, pas une moyenne et pas une promesse sur le vôtre : un ODS plus gros prend plus longtemps, et au-delà de 90 secondes l'exécution est arrêtée.
Qu'est-ce que je perds en passant de l'ODS au CSV ?
Celle qu'il faut connaître en premier : tout ce qui n'est pas le contenu lui-même, la mise en forme, les titres, les images, et toute structure dont le fichier ODS se servait pour se décrire. Un CSV est une chose plate, et c'est voulu.
Pourquoi mon CSV est-il tellement plus petit que l'ODS ?
Parce qu'un CSV porte le contenu et rien d'autre. La mise en forme, les polices, les images, les titres et la structure de fichier qui les entourait ont tous disparu, par choix. Les formules aussi, remplacées par les valeurs qu'elles avaient calculées au moment de la conversion.
Mon classeur avait plusieurs feuilles. Où sont les autres ?
Seule la première est dans le CSV, parce qu'un CSV est un tableau unique et n'a aucun moyen d'en porter un second. LibreOffice prend la première feuille. S'il vous les faut toutes, convertissez plutôt en XLSX, ou lancez la conversion une fois par feuille depuis votre propre fichier.
La conversion ODS vers CSV est-elle gratuite ?
Il y a une franchise gratuite chaque mois, et une conversion ODS vers CSV coûte un demi-crédit dessus. Quand la franchise est épuisée, l'outil le dit et s'arrête, plutôt que de vous remettre discrètement un CSV moins bon.