Fichier CSV : pourquoi Excel le déforme, et le geste qui règle tout
Un export de 400 lignes sorti d’un logiciel de facturation, un double-clic, et le résultat est méconnaissable : toutes les colonnes entassées dans la première, des prénoms qui affichent é, un code postal 01000 devenu 1000. Le fichier, lui, va très bien. Il est même parfaitement valide. Ce qui a mal tourné, c’est la façon dont Excel a décidé de le lire.
Ce que fait vraiment le double-clic
Un CSV est un fichier texte, rien de plus. Aucune information à l’intérieur ne précise quel caractère sépare les colonnes, ni dans quel encodage les accents ont été écrits.
Face à ce vide, Excel ne devine pas : il applique le séparateur de liste défini dans les paramètres régionaux de Windows. Sur une machine française, c’est le point-virgule, parce que la virgule y sert déjà de séparateur décimal. Un CSV produit par un outil américain, donc à virgules, arrive en une seule colonne.
Pourquoi le même fichier s’ouvre-t-il bien chez un collègue ?
Parce que sa machine n’est pas réglée comme la vôtre. Un poste en anglais attend la virgule et lit correctement le fichier qui vous décale tout.
C’est le détail qui fait perdre le plus de temps dans un échange par mail : le fichier n’a aucun défaut, et le renvoyer « corrigé » ne règle rien. Le problème n’est pas dans le document, il est dans le geste d’ouverture.

Petite parenthèse qui explique beaucoup : le CSV a circulé pendant vingt ans sans aucune spécification écrite. La première, publiée en 2005 sous la référence RFC 4180, se contente de décrire ce que faisaient déjà la plupart des logiciels, et elle prévoit la virgule. Presque personne ne l’a suivie.
Trois dégâts classiques, et celui qu’on ne rattrape pas
Les accents transformés en é ou è. Le fichier a été écrit en UTF-8 et relu comme du Windows-1252. Un chercher-remplacer sur ces couples de caractères semble marcher, puis laisse passer les cas rares et abîme des données au passage.
Les zéros de tête envolés. Codes postaux en 0, numéros de téléphone, SIRET, références internes : tout ce qui commence par un zéro et ressemble à un nombre perd ce zéro à la lecture. Et c’est le point que presque personne ne signale : reformater ensuite la colonne en « Texte » ne restaure rien. La valeur a été convertie au moment du chargement, l’information n’existe plus dans le classeur. Il faut refaire l’import, pas retoucher le tableau.
Les nombres trop longs, coupés en silence. Au-delà de 11 chiffres, l’affichage bascule en notation scientifique, du type 5,55556E+13 à la place d’un SIRET. Ce n’est qu’un affichage, il se corrige. La vraie limite est ailleurs : Excel ne conserve que 15 chiffres significatifs, et remplace les suivants par des zéros, sans le moindre message. Un SIRET à 14 chiffres passe tout juste. Un IBAN, non.
Les dates subissent le même traitement. Un 03/04/2026 venu d’un outil américain devient le 3 avril, et une référence produit notée 1-2 se retrouve convertie en date de janvier.
La seule bonne façon d’ouvrir un CSV dans Excel
Il ne faut pas ouvrir le fichier. Il faut l’importer. Le chemin, dans Excel 365 comme dans Excel 2021 : onglet Données, puis Obtenir les données, À partir d’un fichier, À partir d’un fichier texte/CSV.

La boîte qui s’ouvre affiche trois réglages et un aperçu. Prenez le temps de les regarder dans cet ordre :
- Origine du fichier : choisissez UTF-8 si les accents sont déformés dans l’aperçu.
- Délimiteur : point-virgule, virgule, tabulation. L’aperçu se réorganise à chaque changement, vous voyez immédiatement lequel est le bon.
- Détection du type de données : c’est le piège. Le bouton Charger applique la détection automatique et vous ramène exactement aux dégâts décrits plus haut.
Pour tout fichier contenant des codes postaux, des identifiants ou des numéros, passez par Transformer les données au lieu de Charger. Vous sélectionnez la colonne concernée, vous lui imposez le type Texte, puis vous chargez. Trente secondes de plus, zéro donnée perdue.
Un dernier cas, fréquent sur les versions anciennes ou bridées : le chemin d’import est introuvable ou grisé. Renommez alors le fichier en .txt avant de l’ouvrir. Excel ne sait plus l’avaler tout seul et déclenche son assistant d’importation, qui pose les mêmes questions.
Ouvrir sans Excel, parfois plus simple
LibreOffice Calc affiche sa boîte « Import de texte » à chaque ouverture d’un CSV, sans exception : jeu de caractères, séparateur, aperçu, et type de données colonne par colonne. Ce qu’Excel réserve à un chemin de menu, Calc l’impose par défaut. C’est gratuit et c’est souvent le trajet le plus court pour un fichier reçu une fois.
Google Sheets fait le travail depuis un navigateur, avec un choix explicite du séparateur à l’import. Attention en revanche à son option de conversion automatique, qui reproduit le problème des zéros si on la laisse active.
Un éditeur de texte reste le meilleur premier réflexe. Ouvrir le CSV dans le Bloc-notes ou TextEdit prend trois secondes et répond aux deux seules questions qui comptent : quel séparateur, et les accents sont-ils déjà cassés dans le fichier lui-même. La méthode vaut pour tous les formats texte, comme pour un fichier XML qui refuse de s’ouvrir.
Ré-enregistrer un CSV propre selon qui le reçoit
Le choix de l’encodage dépend uniquement du destinataire, et il n’y a que deux cas.
- La personne ouvrira le fichier dans Excel : enregistrez en UTF-8 avec BOM. Cette petite marque en tête de fichier suffit à ce qu’Excel reconnaisse l’encodage tout seul, double-clic compris.
- Le fichier part dans un import web, un CRM, une base : UTF-8 sans BOM. Beaucoup d’outils lisent la marque comme des caractères parasites collés au premier titre de colonne, ce qui fait échouer l’import sur une erreur incompréhensible.
Méfiez-vous du libellé « CSV UTF-8 (délimité par des virgules) » proposé par Excel : malgré son nom, il écrit le séparateur des paramètres régionaux, donc des points-virgules sur une machine française. Si le destinataire attend des virgules, vérifiez le fichier produit dans un éditeur de texte avant de l’envoyer.
Quand les données sortent d’une base et non d’un tableur, l’encodage se choisit à l’export, ce qui évite tout ce détour. C’est le cas d’un fichier MDB impossible à ouvrir dont vous extrayez une table.
Même logique pour les formats structurés, comme le JSON et ses problèmes d’ouverture. Le réglage se fait au moment de produire le fichier, jamais après.
Le fichier est déjà déformé : par où recommencer
Fermez le classeur sans enregistrer. Tant que vous n’avez pas écrit par-dessus le .csv d’origine, le fichier source est intact et contient toujours vos zéros.
Reprenez ensuite dans cet ordre, qui évite de tourner en rond :
- Ouvrez le CSV dans un éditeur de texte, notez le séparateur et l’état des accents.
- Importez-le avec Données > Obtenir les données, en réglant l’origine et le délimiteur d’après ce que vous venez de voir.
- Passez par Transformer les données et imposez le type Texte à chaque colonne d’identifiants avant de charger.
- Enregistrez le résultat en
.xlsxsi le fichier doit vivre comme un classeur, et gardez le CSV d’origine de côté.
Ce dernier point compte plus qu’il n’en a l’air : le CSV n’est pas un format de travail, c’est un format de transport. Dès que le fichier doit contenir des formules ou de la mise en forme, il change de nature, et les règles ne sont plus les mêmes que pour ouvrir un classeur .ods ou un classeur Excel.








