Convertisseur texte → CSV, gratuit

Convertissez des données textuelles tabulaires au format CSV. Détection automatique des séparateurs, gestion des guillemets et aperçu avant téléchargement.

Vos données ne quittent jamais votre appareil

À propos du format CSV

Le CSV (Comma-Separated Values, valeurs séparées par des virgules) est un format texte simple pour stocker des données tabulaires. Chaque ligne représente un enregistrement, et les valeurs sont séparées par des virgules. Le CSV est largement pris en charge par les tableurs, bases de données et outils d'analyse.

Pourquoi convertir en CSV ?

Questions fréquentes

Quels séparateurs l'outil prend-il en charge ?

Il détecte automatiquement tabulation, espace, virgule, point-virgule et barre verticale. Vous pouvez aussi définir un séparateur personnalisé d'un seul caractère.

Comment gérer les champs qui contiennent une virgule ?

Activez l'option « Mettre entre guillemets les champs contenant une virgule » pour les entourer de guillemets, ce qui les rend conformes au CSV.

Puis-je inclure un en-tête ?

Oui, activez l'option « Inclure une ligne d'en-tête » si votre première ligne contient les noms de colonnes.

Une brève histoire du CSV, plus ancien que la spécification qui le définit

Le CSV est le format que tout le monde utilise et que personne ne possède. Sa lignée est informelle. Le premier usage documenté de la convention des valeurs séparées par des virgules remonte à 1972, lorsque le Fortran d'IBM (niveau H étendu) prenait en charge des entrées/sorties dirigées par liste où les virgules servaient de séparateurs entre les valeurs d'une ligne. Tout au long des années 1970 et 1980, chaque base de données, tableur, logiciel de statistiques et application de comptabilité qui avait besoin d'échanger des données avec un autre outil a inventé de façon indépendante une variante de « valeurs séparées par un certain caractère sur des lignes séparées par un autre caractère ». Il n'y avait pas de spécification. Il n'y avait pas d'organisme de gouvernance. Il n'y avait pas d'implémentation canonique. Il n'y avait qu'un consensus, au sens le plus lâche du terme.

Au début des années 2000, le coût du chaos est devenu impossible à ignorer. L'IETF a fini par accepter une spécification, la RFC 4180, « Common Format and MIME Type for Comma-Separated Values (CSV) Files, » publiée en octobre 2005 par Yakov Shafranovich. La RFC 4180 est courte, quelques pages à peine, et elle a codifié ce sur quoi la plupart des gens avaient déjà convergé : une virgule comme séparateur de champ, le guillemet droit comme caractère d'encadrement facultatif pour les champs contenant des virgules, des guillemets ou des sauts de ligne, les guillemets droits doublés ("") comme façon d'échapper un guillemet littéral à l'intérieur d'un champ entre guillemets, CRLF comme fin de ligne, et text/csv comme type MIME enregistré auprès de l'IANA. La spécification a aussi défini un paramètre header facultatif pour le type MIME, afin qu'un expéditeur puisse indiquer à un destinataire si la première ligne est une ligne d'en-tête.

La RFC 4180 est informative, et non une norme stricte. S'y conformer est facultatif. Mais elle nous donne une cible, ce que le CSV a de plus proche d'une définition du « correct ». Un document ultérieur, le « Model for Tabular Data and Metadata on the Web » du W3C (CSVW, 2015), a tenté d'étoffer le volet métadonnées du CSV en y joignant un fichier JSON annexe qui indique ce qu'est chaque colonne et comment l'interpréter. Le CSVW est largement cité et rarement déployé.

Le « CSV » dans la nature ne veut pas dire ce que la RFC 4180 dit qu'il veut dire

Quiconque a déjà dû recevoir un CSV d'un inconnu connaît la forme du problème. Les désaccords se répartissent selon plusieurs axes :

Le piège du BOM

Cela mérite sa propre section, car c'est de loin la source la plus fréquente de douleurs CSV multiplateformes. Microsoft Excel ne détecte pas automatiquement un CSV encodé en UTF-8 à moins que le fichier ne commence par une marque d'ordre des octets (BOM) UTF-8 : les trois octets EF BB BF, qui encodent le caractère Unicode U+FEFF. Sans le BOM, Excel ouvre le fichier dans la page de code héritée de la locale Windows de l'utilisateur (Windows-1252 en Occident, Shift_JIS au Japon, GBK en Chine continentale). Tout caractère non ASCII (lettres accentuées, symboles monétaires, emoji, caractères CJC) est corrompu.

Le correctif consiste à ajouter le BOM en tête. Le revers, c'est que tout le reste s'y étrangle. Apple Numbers (jusqu'aux versions récentes) affiche le BOM comme un caractère littéral dans la première cellule. Beaucoup d'outils en ligne de commande (awk, cut, sed plus anciens) traitent le BOM comme une partie du premier champ, de sorte qu'un en-tête censé afficher name affiche name. La plupart des analyseurs CSV en JavaScript le suppriment ; beaucoup d'anciens flux fondés sur le module csv de Python ne le font pas (vous devez ouvrir le fichier avec le codec utf-8-sig). Comme un outil en ligne gratuit ne peut pas savoir où l'utilisateur ouvrira le fichier, omettre le BOM et préciser que les utilisateurs d'Excel devraient passer par Données → À partir d'un fichier texte/CSV (qui laisse toujours l'utilisateur choisir explicitement l'UTF-8) est un choix par défaut raisonnable.

Excel propose au moins quatre formats « CSV »

La boîte de dialogue « Enregistrer sous » d'Excel propose plus d'une variante de CSV, et les différences comptent :

L'étiquette présentée à l'utilisateur dit « CSV » de quatre façons différentes. Le contenu réel du fichier est matériellement différent. C'est la réalité pratique dans laquelle opère le convertisseur.

Pourquoi convertir du texte → CSV, en particulier

La plupart des « outils CSV » en ligne fonctionnent dans le sens inverse : prendre un CSV, produire autre chose (du JSON, un tableau HTML, un INSERT SQL, un PDF imprimable). Celui-ci fait l'inverse : prendre du texte en désordre et produire un CSV propre. C'est le cas d'usage pour :

Excel réécrira vos données, parfois en silence

Une poignée de pièges du CSV mordent même les utilisateurs prudents :

La place de cet outil parmi les alternatives modernes au CSV

Le CSV survit parce que c'est du texte et que les humains peuvent le lire. Pour l'échange de données sérieux, plusieurs formats l'ont supplanté sur des dimensions précises :

Pour un convertisseur en ligne gratuit destiné aux développeurs et aux employés de bureau, le CSV reste le bon format de sortie, car c'est la lingua franca de l'import de données partout. Des alternatives modernes existent ; elles n'ont pas détrôné le CSV dans la boîte de réception.

Plus de questions

Dois-je ajouter un BOM UTF-8 à la sortie ?

Si le fichier est destiné à un double-clic dans Excel sous Windows, oui : sans le BOM, Excel l'ouvre dans la page de code héritée et corrompt le texte non ASCII. S'il est destiné à autre chose (Apple Numbers, scripts en ligne de commande, formulaires de téléversement web), omettez le BOM. La voie la plus sûre est d'omettre le BOM et d'indiquer aux utilisateurs d'Excel d'importer via Données → À partir d'un fichier texte/CSV, où ils peuvent choisir explicitement l'UTF-8.

Mon CSV s'ouvre avec une seule cellule par ligne dans Excel, qu'est-ce qui a mal tourné ?

Presque toujours une incompatibilité de séparateur. Vous êtes dans une locale où Excel attend des points-virgules (la majeure partie de l'Europe continentale), mais le fichier utilise des virgules, ou inversement. Ouvrez avec Données → À partir d'un fichier texte/CSV au lieu de double-cliquer ; cet assistant vous laisse choisir explicitement le délimiteur. Ou enregistrez le fichier depuis le menu Enregistrer sous d'Excel en utilisant la variante qui correspond à votre séparateur local.

Quelle est la différence entre le TSV et le CSV ?

Le TSV utilise des caractères de tabulation comme séparateur au lieu des virgules, avec son propre type MIME text/tab-separated-values et un enregistrement à l'IANA. L'avantage du TSV est que les données du monde réel contiennent rarement des tabulations littérales, de sorte que la mise entre guillemets n'est presque jamais nécessaire ; l'inconvénient est que les tabulations sont invisibles dans les éditeurs de texte et que le comportement du copier-coller varie. La machinerie de mise entre guillemets du CSV le rend sûr pour les champs qui contiennent le délimiteur ; le TSV évite surtout le problème entièrement.

Existe-t-il un validateur CSV que je peux exécuter avant de partager mon fichier ?

Oui : pour un usage en ligne de commande, le csvclean de csvkit signale les lignes ayant un nombre incorrect de colonnes. Le CLI frictionless de Frictionless Data valide par rapport à un schéma facultatif. Pour un travail dans le navigateur, PapaParse signale les erreurs d'analyse ligne par ligne. La validation stricte par rapport à la RFC 4180 (fins de ligne CRLF, échappement par doublement des guillemets) est rare en pratique ; la plupart des analyseurs acceptent n'importe laquelle des variantes courantes.

Outils associés