En bref : le CSV ressemble au format de données le plus simple possible, et c'est exactement pour cela que de petites incohérences — une virgule perdue dans un champ texte non guillemeté, un délimiteur incompatible, un BOM caché — font échouer un import ou désalignent silencieusement les colonnes. Associez ce guide à Encoding Converter, Duplicate Finder, Remove Extra Spaces et Character Counter.
Les vraies règles du CSV sont définies dans RFC 4180, même si en pratique la plupart des CSV réels ne les suivent que vaguement — ce qui est exactement la source de la plupart des problèmes d'import.
Où échouent réellement les imports CSV
Le problème central : une virgule est à la fois le délimiteur de colonne et un caractère pouvant légitimement apparaître dans un champ texte (une adresse, une description de produit avec "Petit, Moyen, Grand" dedans). La réponse de RFC 4180 est le guillemetage — un champ contenant une virgule doit être entouré de guillemets doubles, et un guillemet double littéral dans un champ guillemeté est échappé en le doublant (""). Un logiciel qui exporte du CSV sans suivre cette règle produit des fichiers où une seule virgule non guillemetée décale silencieusement chaque colonne suivante d'une position.
Les délimiteurs ne sont pas universels
Séparé par virgule est l'hypothèse par défaut, mais beaucoup de fichiers réels utilisent plutôt des points-virgules — particulièrement courant dans les locales où la virgule est déjà le séparateur décimal des nombres, ce qui rend ambigu de la réutiliser comme délimiteur de colonne. Un CSV qui s'ouvre comme une seule colonne non divisée dans un tableur utilise très souvent simplement le mauvais délimiteur pour l'hypothèse de cet outil, pas réellement cassé.
Encodage et le BOM invisible
Un byte order mark (BOM) UTF-8 — trois octets invisibles au tout début d'un fichier — est ajouté par certains outils (notamment Excel à l'export) pour signaler l'encodage, mais tous les analyseurs ne le retirent pas automatiquement. Laissé en place, il peut s'attacher invisiblement au nom d'en-tête de la première colonne, si bien qu'une recherche d'une colonne littéralement nommée name échoue car l'en-tête réel est name avec un caractère invisible ajouté devant — un bug véritablement difficile à repérer à l'œil.
Un flux de nettoyage avant import
- Ouvrez d'abord le fichier brut en texte simple (pas dans un tableur, qui interprète automatiquement et peut masquer la structure réelle) pour vérifier le délimiteur et le guillemetage réels.
- Vérifiez les premiers octets pour un BOM si les recherches par nom de colonne échouent mystérieusement.
- Cherchez spécifiquement les virgules non guillemetées dans ce qui devrait être des champs texte uniques — la cause la plus courante de désalignement des colonnes.
- Vérifiez un saut de ligne final ou une ligne vide finale, que certains outils d'import comptent comme un enregistrement final cassé.
- Lancez Duplicate Finder sur une colonne clé (comme un ID ou un email) avant import si des enregistrements en double poseraient problème en aval.
Erreurs courantes à éviter
- Supposer que chaque CSV utilise des virgules — les fichiers délimités par point-virgule sont courants et semblent identiques jusqu'à ce que vous essayiez de séparer sur le mauvais caractère.
- Modifier du CSV dans une appli tableur, qui reformate silencieusement les dates, retire les zéros en tête, et peut réencoder le texte de façons ne correspondant pas à l'original.
- Ne pas vérifier un BOM en tête quand les recherches basées sur les en-têtes échouent sans raison visible.
- Ignorer les virgules non guillemetées dans les champs de texte libre jusqu'à ce que l'import produise des colonnes visiblement décalées.
La plupart des échecs d'import CSV ne concernent pas vraiment les données — ils concernent les hypothèses d'un analyseur (délimiteur, encodage, guillemetage) qui ne correspondent pas à ce que le fichier contient réellement.