Comment empêcher les numéros de manipuler des numéros lors de l'importation d'un fichier CSV?

8

Lorsque j'ouvre un fichier CSV dans Numbers, il convertit "utilement" les champs qu'il reconnaît comme numériques en supprimant les zéros au début, en convertissant les éléments qu'il reconnaît en tant que dates, etc.

Prenez par exemple, vous tapez un code UPC dans une feuille de calcul Numbers 005566778899 , Numbers convertira automatiquement cela en 5566778899 . Ce n'est pas ce que je voudrais ...

Cependant, le chemin je utiliser Numbers, j'ouvre des bases de données avec des milliers de codes UPC avec des zéros précédents. Certains d'entre eux contiennent également Rendez-vous quels nombres seront également reformatés. En gros, je ne veux aucune de ces fonctionnalités, je veux que mon contenu soit laissé seul.

Comment puis-je obtenir que Numbers laisse mes données intactes lorsque j'ouvre un fichier CSV?

Convertir les champs en texte après l’importation ne vous aidera pas, car les données ont déjà été gâchées ...

henryaaron
la source
Que voulez-vous dire "les données étaient déjà fouillées"? Voulez-vous dire convertir en texte après le fichier est ouvert?
Daniel
Lors de l'ouverture du fichier, Excel et Numbers changeront autour de toutes vos données. Alors quoi que je sois obligé de faire, je dois le faire avant d’ouvrir le fichier.
henryaaron

Réponses:

7

Si un champ d’un fichier CSV commence par une apostrophe ( ' ), Excel et Numbers traiteront le champ comme du texte et ne le rendront pas avec un formatage numérique.

Vos fichiers CSV semblent essayer de forcer le rendu du texte en entourant les champs de nombres par des guillemets, mais Numbers et Excel ne semblent pas tenir pour acquis que les nombres entre guillemets doivent être traités comme des chaînes. L’astuce semble consister à modifier les fichiers CSV afin qu’ils utilisent l’astuce "commence par une seule apostrophe" plutôt que celle "contenue dans les guillemets doubles" pour les champs numériques, tout en conservant les guillemets pour les champs de texte contenant des signes de ponctuation (y guillemets, sauts de ligne, etc.).

Pour traiter vos fichiers CSV afin qu'ils le fassent, vous pouvez créer une application Automator.

Dans Automator, créez une nouvelle application.

Elle aura une action unique: Exécuter le script shell (en transmettant l’entrée sous forme d’arguments). Voici le script:

for f in "$@"
do
    perl -pi -e "s/\"\"([0-9A-Za-z: \.\-+]+)\"/'\1/g" "$f"
done

Enregistrez l'application résultante sur votre bureau. Déposez tous les fichiers CSV que vous souhaitez utiliser dans Numbers sur l'icône de l'application et ils seront convertis afin que Numbers conserve les nombres dans les champs sous forme de nombres littéraux, sans les formater ni les jeter.

Sauvegardez vos données avant d'essayer ceci; il est possible qu'une chaîne particulièrement étrange construite dans un champ d'enregistrement puisse gâcher les résultats ici.

enter image description here

Daniel
la source
Faire en sorte que ce travail semble nécessiter une certaine interaction. Cette discussion ferait mieux avoir lieu dans le chat
Daniel
0

Plus précisément, voici comment gérer zéros de tête . Je pense que votre question concerne davantage le formatage des cellules que la correction automatique.

Comme il a été mentionné, la fonction de correction automatique est un élément du système et doit être désactivée dans les Préférences Système.

Adam Eberbach
la source
La conversion des cellules dans ce format ne va pas aider car les données ont déjà été fouillés avec ...
henryaaron
1
Je me serais attendu à ce que les zéros reviennent si vous formatez les cellules - si Numbers supprime de manière destructive ces zéros à l'importation qui seraient vraiment nuls. Peut-être devrez-vous formater les cellules avant l'importation.
Adam Eberbach
C'est certainement le cas.
henryaaron