6 votes

L'ouverture d'un fichier CSV dans Excel corrompt la colonne des numéros de téléphone

J'exporte les données de listview vers un fichier csv. Il y a une colonne, 'Numéro de contact'. Le type de données de cette colonne est un champ de 20 caractères de texte dans MS Access. En ouvrant ce csv avec Notepad, il montre la valeur réelle des données, 12345678901234567890. Mais en l'ouvrant avec MS Excel, il affiche 12345678901234500000. :O

Pourquoi les 5 derniers caractères sont transformés en zéro ? Dans Excel, je reformate cette colonne au format de catégorie 'Personnalisé' ou 'Nombre'. Après cela, elle affiche 12345678901234500000. Si je ne la reformate pas, elle affiche normalement 1.23457E+19.

5voto

j.w.r Points 151

Une suggestion est de mettre une apostrophe devant le numéro lorsque vous exportez les données au format CSV. Ainsi, au lieu de 12345678901234567890 exporter '12345678901234567890 .

3voto

pavium Points 6334

Excel traite les données comme un nombre à virgule flottante, qu'il est capable d'approximer à 1,23457E+19.

La virgule flottante ne donne pas 20 chiffres de précision.

Il s'agit d'une limitation de la virgule flottante. Voir cette page

3voto

preston Points 79

Tout d'abord, il ne faut pas traiter cela comme un numéro, car 0123 deviendrait 123, ce qui est un numéro de téléphone totalement différent. Il suffit de mettre les valeurs entre guillemets lors de l'exportation pour qu'Excel traite la colonne comme du texte.

J'ai remarqué par le passé qu'Excel offre très peu de contrôle sur le processus d'importation CSV. En fonction de vos besoins, vous pourriez envisager d'utiliser VBA pour un meilleur contrôle de l'importation, ou de post-traiter le CSV, ou encore d'utiliser Open Office.

3voto

LVDave Points 81

Si vous ouvrez un fichier CSV à partir de la fenêtre d'exploration (en double-cliquant sur le fichier), Excel tentera de déterminer automatiquement les champs pour vous.

Si vous ouvrez Excel, puis le fichier CSV, vous avez la possibilité de choisir vous-même les délimiteurs et les types de champs. Ainsi, vous pouvez définir votre "numéro de contact" en tant que texte, et l'importation se fera correctement.

3voto

Paul Nearney Points 5502

D'après mes expériences, Excel détectera automatiquement le format d'un champ CSV, à moins que vous ne le spécifiez comme suit

="Data Here"

20,       5.5%,      "0404 123 351", "3-6",  ="123"
[number]  [percent]  [number]        [date]  [string]  <-- how Excel interprets

Je ne suis pas sûr de la façon dont MS Access interprétera les champs ci-dessus, cependant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X