Pourquoi Excel supprime-t-il les zéros de tête lors de l'affichage des données CSV?


9

J'ai un fichier texte CSV avec le contenu suivant:

"Col1","Col2"
"01",A
"2",B
"10", C

Lorsque je l'ouvre avec Excel, il s'affiche comme indiqué ici:

Notez que Cell A2tente d'afficher "01" sous forme de nombre sans "0" en tête.

Lorsque je formate les lignes 2 à 4 en tant que "Texte", cela change l'affichage en

... mais toujours le premier "0" a disparu.

Existe-t-il un moyen d'ouvrir un fichier CSV dans Excel et de voir tous les zéros en tête du fichier en retournant une option? Je ne veux pas avoir à retaper '01 dans chaque cellule qui devrait avoir un zéro non significatif. De plus, l'utilisation d'une apostrophe principale nécessite que les modifications soient enregistrées au format XLS lorsque CSV est souhaité. Mon objectif est simplement d'utiliser Excel pour afficher le contenu réel du fichier sous forme de texte sans qu'Excel n'essaye de me faire des faveurs de mise en forme.


La seule façon dont j'ai compris cela est difficile, mais semble fonctionner. Copiez et collez sur une nouvelle feuille. Définissez toute la zone collée au format "texte", puis supprimez-la et collez à nouveau les valeurs. Bob est ta tante.

3
(Pour nos utilisateurs non britanniques, "Bob's your aunty" est un idiome qui se traduit librement par "et vous êtes prêt".)
iglvzx

Robert n'était pas ma tante. :-) Je pensais avoir réussi à le faire auparavant, mais cela n'a pas fonctionné. Essayez-le. Ce qui m'a dérouté, c'est pourquoi le formatage de la cellule sous forme de texte n'entraîne pas l'affichage de la valeur "02" avec un 0 à gauche justifié.
Chad

1
si le csv est pour excel uniquement, vous pouvez utiliser des nombres explicites comme texte - par exemple, si vous écrivez '01en excel, il s'affichera 01sans le guillemet simple.
Aprillion

Réponses:


6

Lorsque vous ouvrez le fichier csv, vous aurez la possibilité de spécifier le délimiteur et le type de données pour chaque colonne. L'assistant d'importation de texte comporte 3 étapes. Notez que mes captures d'écran proviennent d'Excel 2010, mais cela fonctionnera exactement de la même manière dans Excel 2003.

Étape 1: sélectionnez délimité (au lieu de largeur fixe)

Étape 2: sélectionnez la virgule comme délimiteur

Étape 3: sélectionnez chaque colonne et changez le format des données en "texte". (Vous verrez le mot Texte affiché au-dessus de chaque colonne comme dans la capture d'écran ci-dessous.)

entrez la description de l'image ici

Les zéros non significatifs ne seront plus supprimés:

entrez la description de l'image ici

MISE À JOUR : Si vous ne souhaitez pas parcourir le processus pour faire coopérer Excel, vous pouvez utiliser CSVEd , un éditeur spécialement conçu pour éditer des fichiers texte délimités. Un bon éditeur de texte comme Notepad ++ pourrait également fonctionner, mais vous ne pourrez pas voir vos données organisées en colonnes.



1
Mon problème était que mon fichier avait une extension csv et la boîte de dialogue d'importation ne s'affiche jamais. lorsque j'ai renommé le fichier pour avoir une extension de texte, j'étais prêt et je savais où aller. ty.
Chad

Voici une complication: après l'avoir importé comme vous le décrivez, je veux ensuite pouvoir modifier le fichier et le sauvegarder en CSV. Il me présente une boîte de dialogue laide et alambiquée (allez sur microsoft-design un formulaire de dialogue personnalisé pour cela au lieu d'utiliser la fonctionnalité MessageBox Windows!). Je choisis l'option de "le garder dans le même format". Lorsque je le fais, il utilise par défaut un format séparé par des tabulations. Pour vous assurer que le fichier txt est enregistré avec un séparateur de virgules, vous devez modifier l'extension du nom de fichier en "csv". Est-ce laid de quoi? Après 10 versions d'Excel, nous avons cela?
Chad

Salut Velika, voir la mise à jour au bas de ma réponse. Il vaut peut-être mieux ne pas utiliser Excel du tout.
Jon Crowell

Ouais, je cherchais déjà un éditeur CSV. J'ai vu CSVEd. Mon impression initiale est que cela ressemble à une interface ametuerish déroutante. Je pense que "Tabular Text Editor" est plus joli. Merci de votre aide.
Chad

13

Je suis juste tombé sur ce problème. Si vous contrôlez la création du fichier CSV, vous pouvez donner aux données l'aspect suivant:

"Col1","Col2"
="01",A
="2",B
="10", C

Une fois ouvert comme Excel, il conservera le 01.


Mon Excel 2010 ne conserve pas 01 même avec votre exemple
OneWorld

1

formatez la colonne afin qu'elle affiche la façon dont vous le souhaitez (par exemple 00 pour 2 chiffres)
Cela a l'avantage d'être enregistré avec ces chiffres (mais vous devrez modifier la mise en forme à chaque fois que vous modifiez le CSV)


0

Copiez d'abord toutes les données / colonnes et lignes de la feuille Excel réelle dans une autre feuille Excel juste pour être du bon côté afin de pouvoir comparer les données réelles. Pas,

  1. Copiez toutes les valeurs de la colonne et collez-les dans un bloc-notes.
  2. Maintenant, changez le type de colonne en texte dans la feuille Excel (cela supprimera les zéros précédents / finaux), ne vous inquiétez pas.
  3. Accédez au Bloc-notes et copiez toutes les valeurs que vous avez collées tout à l'heure.
  4. Accédez à votre feuille Excel et collez les valeurs dans la même colonne.

Si vous avez plusieurs colonnes avec 0 valeurs, répétez simplement la même chose.

Jours heureux.


0

1) Collez mes chiffres dans une colonne Excel (cela supprimera les zéros non significatifs)

2) Ensuite, faites un clic droit pour "formater les cellules" personnalisées à 0000 pour un # à 4 chiffres, 00000 pour # à 5 chiffres. etc ... (ramenez ces zéros)

3) Copiez la colonne et collez -la dans un fichier .txt. (devrait avoir tous les zéros en tête).

4) Copiez votre liste .txt.

5) Faites un clic droit sur n'importe quelle colonne dans Excel et formatez-la en texte.

6) Collez les données copiées du .txt dans la colonne Excel (tous les zéros en tête restent)

Délimitez au désir de votre cœur.


0

Si le dommage est déjà fait et que vous disposez des données dans Excel, vous pouvez modifier le format de fichier à l'aide de l'option Format numérique personnalisé. Il suffit de mettre des zéros pour le nombre d'emplacements souhaités (l'image ci-dessous fera six chiffres)

entrez la description de l'image ici

Voici une macro qui le ferait également sur toute votre feuille. Spécifiez simplement le nombre de chiffres.

Sub whyNot()
Dim WS As Worksheet, fMat As String, p As Long

    '''''Custom Options
    Const NumberOfPlaces As Long = 3 '' change this to number of places you want
    Set WS = ActiveSheet 'or specify the sheet name with Sheets("Sheet1")


        For p = 1 To NumberOfPlaces
        fMat = fMat & "0"
        Next p

        WS.UsedRange.Cells.NumberFormat = fMat

End Sub
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.