Vous double-cliquez sur un CSV et Excel « vous aide ». Le code postal 01234 devient 1234. Le numéro de commande 4012888888881881 devient 4,01289E+15, et le dernier chiffre est remplacé par un zéro. Le code produit 3-5 devient le 3 mai. Rien de tout cela n'est dans le fichier. Excel l'a fait à l'ouverture, et si vous enregistrez, c'est définitif.
La solution n'est pas d'ouvrir le fichier autrement à chaque fois en espérant que ça passe. Il faut empêcher Excel de deviner, ce qui prend environ une minute.
La réponse rapide
- Ne double-cliquez pas sur le CSV. Utilisez Données → À partir du texte/CSV et réglez les colonnes fragiles sur Texte avant le chargement.
- Sur Microsoft 365, désactivez les conversions indésirables dans Fichier → Options → Données → Conversion automatique des données.
- N'écrasez jamais l'original après l'avoir ouvert par double-clic. Les dégâts sont écrits dans le fichier à ce moment-là.
- Google Sheets : Fichier → Importer, puis décochez Convertir le texte en nombres, dates et formules.
Ce qu'Excel modifie, et pourquoi
Un CSV n'a pas de types : chaque valeur est du texte. Excel veut des nombres et des dates, alors il devine, colonne par colonne, cellule par cellule. Les suppositions qui font mal :
| Vous aviez | Excel affiche | Ce qui s'est passé |
|---|---|---|
01234 | 1234 | Zéro initial supprimé d'un « nombre » |
4012888888881881 | 4,01289E+15 | Notation scientifique ; les chiffres après le 15e deviennent 0 |
3-5, 1/2 | 5-mars, 2-janv | Lu comme une date |
MARCH1, SEPT2 | 1-Mar, 2-Sep | Lu comme une date (un problème célèbre pour les noms de gènes) |
1E5 | 100000 | Lu comme une notation scientifique |
=1+1 | 2 | Lu comme une formule |
TRUE | TRUE (en booléen) | Généralement sans danger, jusqu'à ce que ce soit un nom |
Deux de ces cas sont destructeurs et pas seulement cosmétiques. La notation scientifique sur un nombre à 16 chiffres perd le dernier chiffre, car Excel stocke les nombres avec 15 chiffres significatifs. Et une valeur lue comme une date est stockée sous forme de numéro de série de date. Si vous repassez le format en texte, vous voyez un numéro de série comme 46086, pas 3-5.
Le moment qui compte, c'est l'enregistrement. Ouvrir un CSV change ce que vous voyez. L'enregistrer en CSV réécrit dans le fichier ce que vous voyez, et les valeurs d'origine sont perdues.
Solution 1 : importer au lieu d'ouvrir
Cela fonctionne dans toutes les versions de bureau d'Excel depuis 2016.
- Ouvrez un classeur vide.
- Données → À partir du texte/CSV, puis choisissez le fichier.
- Dans l'aperçu, cliquez sur Transformer les données (pas sur Charger).
- Dans Power Query, sélectionnez chaque colonne fragile : identifiants, codes postaux, numéros de téléphone, codes produit, numéros de compte. Puis Transformer → Type de données → Texte. Si Excel le demande, choisissez Remplacer l'actuel.
- Fermer et charger.
Les valeurs arrivent exactement comme elles sont écrites. Vous pouvez toujours faire des calculs sur les colonnes vraiment numériques, car vous n'avez désactivé la devinette que là où elle posait problème.
Si vous préférez l'ancien assistant : Fichier → Options → Données → Afficher les anciens assistants d'importation de données → À partir du texte (héritage). Il apparaît alors sous Données → Obtenir des données → Assistants hérités, et l'étape 3 de l'assistant permet de marquer des colonnes comme Texte.
Solution 2 : désactiver la conversion automatique
Les versions récentes d'Excel pour Microsoft 365 ont des paramètres pour cela, dans Fichier → Options → Données → Conversion automatique des données :
- Supprimer les zéros non significatifs et convertir en nombre
- Conserver les 15 premiers chiffres des nombres longs et afficher en notation scientifique
- Convertir en nombre en notation scientifique les chiffres entourant la lettre « E »
- Convertir en date les suites de lettres et de chiffres
Décochez ceux qui vous posent problème. Il existe aussi une option pour être averti quand Excel convertit quelque chose à l'ouverture d'un CSV. Laissez-la activée : elle transforme un changement silencieux en changement visible.
Ces paramètres s'appliquent aussi à l'ouverture par double-clic, ce qui en fait la solution la plus pratique. C'est aussi la moins portable : la personne à qui vous envoyez le fichier a ses propres paramètres.
Solution 3 : Google Sheets et Numbers
Google Sheets convertit aussi par défaut. Utilisez Fichier → Importer → Importer, puis dans la boîte de dialogue décochez Convertir le texte en nombres, dates et formules. Tout arrive en texte, exactement comme écrit.
Numbers sur Mac et iPhone supprime aussi les zéros initiaux et lit les valeurs ressemblant à des dates comme des dates. Sélectionnez la colonne et réglez son format sur Texte pour éviter cela sur les nouvelles saisies, mais la conversion à l'ouverture a déjà eu lieu. Si les données comptent, comparez quelques valeurs connues avec le fichier brut.
Les astuces qui ont l'air malines et qui ne le sont pas
- Écrire les valeurs sous la forme
="01234"dans le CSV. Excel affiche01234. Tous les autres outils qui lisent le fichier y voient une formule, tout comme le prochain système dans lequel va votre export. - Ajouter une apostrophe,
'01234. Même problème : l'apostrophe fait désormais partie de vos données partout sauf dans Excel. - Formater la colonne en Texte après l'ouverture. Trop tard. Le zéro a déjà disparu ; le formatage ne le fera pas revenir.
Sur téléphone
Les téléphones ont le même problème avec moins de réglages. Numbers sur iPhone et les applications Sheets et Excel convertissent tous à l'ouverture, et un CSV réenregistré depuis elles garde les modifications.
Une application CSV qui traite chaque cellule comme du texte n'a pas ce problème, car elle ne convertit jamais. Dans Smart CSV Viewer, vous pouvez quand même indiquer qu'une colonne contient des nombres, des montants ou des dates, pour qu'elle se trie et se filtre correctement, mais le type ne change que l'affichage de la colonne. Le texte du fichier reste tel quel.

Affiche une colonne comme un nombre, un montant ou une date sans la réécrire : les zéros initiaux, les longs identifiants et les codes restent exactement comme dans le fichier.
Ce que ça faitUne habitude utile
Avant de faire confiance à un aller-retour de CSV dans un tableur, vérifiez trois valeurs faciles à abîmer : un identifiant avec un zéro initial, le nombre le plus long du fichier et un code qui ressemble à une date. Si ces trois-là ont survécu, le reste a presque certainement survécu aussi. Le guide CSV vs XLSX explique pourquoi cela arrive avec tous les tableurs, pas seulement Excel.