Le CSV est un tableau et rien d'autre, sans formules ni mise en forme de cellule. Le XLSX est un classeur Excel, avec plusieurs feuilles, des formules et des formats de cellule. LibreOffice se tient entre les deux, et cette page dit exactement ce qui arrive à un fichier CSV en route vers le XLSX.
Ce qui s'exécute quand un fichier CSV devient un XLSX
LibreOffice 24.2, sur une machine que nous louons et que nous surveillons. Votre fichier CSV est envoyé une fois, LibreOffice s'exécute une fois, le fichier XLSX revient, et aucun des deux fichiers n'est conservé. CSV vers XLSX 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 CSV dans le fichier XLSX
Chaque valeur et chaque ligne du fichier CSV. Un CSV ne porte rien d'autre que ses valeurs : il n'y a donc rien d'autre qui puisse se perdre en route vers le XLSX.
Les types, déduits à l'entrée. Les nombres arrivent en nombres et les dates en dates dans le XLSX, ce qui permet de les trier et de les totaliser sans toucher à chaque cellule.
Ce que la conversion CSV vers XLSX vous coûte
Rien, et il vaut mieux le dire franchement que d'inventer une réserve. Un fichier CSV porte des valeurs et un séparateur ; le XLSX porte tout cela et davantage. Ce qui change, c'est ce que vous pouvez en faire, pas ce qu'il contient.
Une réserve qui n'est pas une perte mais qui surprend : le XLSX décide de ce que votre texte veut dire. Une cellule qui porte 03/04 devient une date, et une qui porte 007 perd ses zéros, parce que c'est ce qu'un tableur fait d'une valeur nue. Le fichier CSV ne disait rien des types ; il fallait bien que quelqu'un tranche.
D'où viennent les fichiers CSV et XLSX
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.
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.
Si un modèle doit lire le fichier XLSX
La structure est ce qui subsiste du fichier CSV, et la structure est ce dont un modèle a besoin. CSV en entrée, XLSX en sortie, avec l'arbre des titres intact plutôt qu'aplati en un seul long paragraphe.
CSV vers XLSX, mesuré plutôt que promis
En passant CSV vers XLSX sur le moteur réel avec un vrai fichier, LibreOffice a écrit 5 643 octets au format XLSX en 1,0 secondes, machine par ailleurs au repos. C'est un fichier CSV un jour donné et non une moyenne, et c'est pourquoi le nombre est donné avec le fichier qui l'a produit.
Le verdict CSV vers XLSX 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 XLSX contient.
Le même fichier CSV, envoyé ailleurs
Les autres sorties que la sonde a mesurées à partir d'un fichier CSV, pour que le coût du choix du format XLSX 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 CSV.
CSV vers PDF : 12 680 octets en 1,0 secondes, vérifié par une signature de format.
CSV vers MD : 114 octets en 0,1 secondes, vérifié par un aller-retour pandoc.
CSV vers DOCX : 9 945 octets en 0,1 secondes, vérifié par un aller-retour pandoc.
CSV vers EPUB : 4 913 octets en 0,1 secondes, vérifié par un aller-retour pandoc.
CSV vers TXT : 114 octets en moins d'un dixième de seconde, vérifié par la relecture du texte.
CSV vers HTML : 3 894 octets en 0,1 secondes, vérifié par un aller-retour pandoc.
Les autres routes vers XLSX, et ce qu'elles ont mesuré
Parmi les routes publiées vers XLSX, CSV est la deuxième plus grosse sortie des 3 mesurées. Les fichiers témoins diffèrent : ce classement porte sur la sonde et non sur votre document.
XLS vers XLSX : 5 965 octets en 1,0 secondes.
ODS vers XLSX : 5 610 octets en 1,1 secondes.
Ce que nous ne prétendrons pas sur CSV vers XLSX
Un fichier CSV 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 CSV vers XLSX 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 CSV 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 CSV par la route vivante et en lisant le XLSX 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.
Un fichier CSV à la fois, choisi dans le navigateur. Il n'y a rien d'autre à régler et rien d'autre à proposer.
CSV vers XLSX : les questions que l'on pose
Qu'est-ce qui convertit vraiment mon fichier CSV en XLSX ?
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 CSV est envoyé une fois, LibreOffice s'exécute une fois, le XLSX revient, et aucun des deux fichiers n'est conservé ensuite.
Combien de temps prend une conversion CSV vers XLSX ?
Sur le fichier utilisé par la sonde, LibreOffice a mis 1,0 seconde et écrit 5 643 octets de XLSX. C'est une mesure réelle sur un fichier CSV réel, pas une moyenne et pas une promesse sur le vôtre : un CSV 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 CSV au XLSX ?
Celle qu'il faut connaître en premier : rien, et il vaut mieux le dire franchement que d'inventer une réserve. Un fichier CSV porte des valeurs et un séparateur ; le XLSX porte tout cela et davantage. Ce qui change, c'est ce que vous pouvez en faire, pas ce qu'il contient.
Mes zéros de tête ont-ils survécu ?
Probablement pas, et c'est la seule chose à vérifier. Un fichier CSV ne dit rien de ce que ses valeurs signifient : le XLSX doit donc trancher, 007 devient 7 et 03/04 devient une date. C'est ce qu'un tableur fait d'une valeur nue. Si ces colonnes comptent, mettez-les au format texte dans le XLSX une fois ouvert.
La conversion CSV vers XLSX est-elle gratuite ?
Il y a une franchise gratuite chaque mois, et une conversion CSV vers XLSX 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 XLSX moins bon.