Tous les guides
Données

Cellules CSV avec virgules, guillemets et sauts de ligne

Deux enregistrements, plus de deux lignes. Gardez les virgules et les sauts de ligne dans leurs cellules.

Une cellule CSV peut contenir une virgule, un guillemet ou un saut de ligne. Cela ne signifie pas que le fichier est corrompu. Cela signifie que la cellule doit être encadrée par des guillemets, et compter les lignes de texte ne vous dira pas forcément combien d’enregistrements le fichier contient.

Téléchargez le CSV d’exemple. Ouvrez le convertisseur CSV, JSON & YAML et importez-le. Le fichier contient deux enregistrements, même si une légende s’étend sur deux lignes :

name,caption
"Lee, Sam","First line
Second line"
Mina,"She said ""hello""."

Lire les guillemets avant de découper une ligne

La virgule dans "Lee, Sam" fait partie du nom. Le saut de ligne entre First line et Second line fait partie de la légende. Aucun ne démarre un nouveau champ ou enregistrement car ils sont à l’intérieur des guillemets qui les entourent.

Dans une cellule entre guillemets, deux guillemets doubles consécutifs représentent un guillemet. Ainsi "She said ""hello""." devient le texte She said "hello".. Les guillemets extérieurs et les guillemets doublés à l’intérieur sont une syntaxe CSV, pas des caractères supplémentaires à conserver dans la valeur. Ces règles sont décrites dans les notes du format CSV RFC 4180.

Découper le texte brut à chaque virgule ou saut de ligne ignore cette distinction. Supprimer tous les guillemets n’est pas non plus une solution : cela transforme les virgules dans les noms en séparateurs de colonnes.

Convertir l’exemple et vérifier ses valeurs

  1. Importez l’exemple, ou collez le CSV ci-dessus dans l’éditeur d’entrée.
  2. Réglez De sur CSV et Vers sur JSON.
  3. Dans Options, laissez La première ligne contient les en-têtes activé et Détecter les nombres et booléens dans le CSV désactivé. Réglez Séparateur CSV sur Virgule si la détection automatique est incorrecte.
  4. Vérifiez le résultat Code. Il doit contenir deux objets, chacun avec un nom et une légende. Tableau donne un aperçu rapide des deux lignes et colonnes.

L’exemple téléchargé utilise des fins de ligne CRLF, y compris le saut à l’intérieur de la première légende. Sa sortie JSON contient :

[
  {
    "name": "Lee, Sam",
    "caption": "First line\r\nSecond line"
  },
  {
    "name": "Mina",
    "caption": "She said \"hello\"."
  }
]

JSON affiche le retour chariot et saut de ligne sous forme de séquences d’échappement. Ils représentent toujours un saut de ligne dans la chaîne. Si vous collez l’exemple de cette page au lieu d’importer le fichier, votre presse-papiers peut fournir uniquement des fins de ligne LF ; voir \n au lieu de \r\n est normal. Téléchargez la sortie JSON vérifiée pour la version CRLF.

Tester le trajet retour

Choisissez Utiliser le résultat comme entrée pour convertir le JSON en CSV. Gardez toutes les colonnes sélectionnées. Le CSV exporté met à nouveau entre guillemets la virgule, la légende multilignes et les guillemets. La conversion inverse en JSON a conservé les deux enregistrements et chaque valeur de champ lors de notre vérification.

C’est une comparaison de données, pas une garantie que chaque fichier CSV sera identique octet par octet. Les guillemets, les nouvelles lignes finales et les délimiteurs peuvent être écrits différemment. L’outil protège aussi par défaut les valeurs ressemblant à des formules de tableur, ce qui peut ajouter une apostrophe initiale. Notre exemple n’a pas ces valeurs ; gardez cette protection activée pour ouvrir des exports non fiables dans un tableur.

Quand la virgule est vraiment une erreur

L’exemple incorrect laisse la virgule dans le nom sans guillemets. Il a un en-tête à deux colonnes et une ligne à trois champs, donc le convertisseur rejette l’incohérence. Entourez le nom entier de guillemets comme "Lee, Sam" pour corriger ; ne supprimez pas une partie du nom.

L’enregistrement des résultats contient les valeurs attendues, la vérification aller-retour et le résultat d’entrée rejetée du 26 octobre 2026. Il teste ce petit exemple avec le parseur du convertisseur, pas toutes les règles d’import CSV des tableurs.