Le XLSX est un classeur Excel, avec plusieurs feuilles, des formules et des formats de cellule. 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 XLSX en route vers le CSV.
Ce qui s'exécute quand un fichier XLSX devient un CSV
LibreOffice 24.2, sur une machine que nous louons et que nous surveillons. Votre fichier XLSX est envoyé une fois, LibreOffice s'exécute une fois, le fichier CSV revient, et aucun des deux fichiers n'est conservé. XLSX 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 XLSX 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 XLSX 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 XLSX 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 XLSX 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 XLSX et CSV
XLSX. Excel l'écrit, et presque tout ce qui porte un bouton d'export vers Excel aussi : Google Sheets, Salesforce, un relevé bancaire téléchargé. Il tient 1 048 576 lignes et 16 384 colonnes, et c'est pour cela qu'il a remplacé l'ancien binaire.
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 XLSX, et la structure est ce dont un modèle a besoin. XLSX en entrée, CSV en sortie, avec l'arbre des titres intact plutôt qu'aplati en un seul long paragraphe.
XLSX vers CSV, mesuré plutôt que promis
En passant XLSX 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 XLSX un jour donné et non une moyenne, et c'est pourquoi le nombre est donné avec le fichier qui l'a produit.
Le verdict XLSX 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 XLSX, envoyé ailleurs
Les autres sorties que la sonde a mesurées à partir d'un fichier XLSX, 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 XLSX.
XLSX vers PDF : 18 965 octets en 1,1 secondes, vérifié par une signature de format.
XLSX vers HTML : 2 269 octets en 1,1 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, XLSX est la plus grosse sortie des 5 mesurées. Les fichiers témoins diffèrent : ce classement porte sur la sonde et non sur votre document.
JSON vers CSV : 39 octets en moins d'un dixième de seconde.
XLS vers CSV : 89 octets en 0,9 secondes.
ODS vers CSV : 89 octets en 1,1 secondes.
YAML vers CSV : 39 octets en moins d'un dixième de seconde.
Ce que nous ne prétendrons pas sur XLSX vers CSV
Un fichier XLSX 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 XLSX 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 XLSX 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 XLSX 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 XLSX à la fois, choisi dans le navigateur. Il n'y a rien d'autre à régler et rien d'autre à proposer.
XLSX vers CSV : les questions que l'on pose
Qu'est-ce qui convertit vraiment mon fichier XLSX 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 XLSX 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 XLSX 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 XLSX réel, pas une moyenne et pas une promesse sur le vôtre : un XLSX 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 du XLSX 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 XLSX 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 le XLSX ?
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 ODS, ou lancez la conversion une fois par feuille depuis votre propre fichier.
La conversion XLSX vers CSV est-elle gratuite ?
Il y a une franchise gratuite chaque mois, et une conversion XLSX 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.