Come faccio a mantenere i numeri dai numeri di maneggevolezza durante l'importazione di un CSV?


8

Quando apro un file CSV in Numbers, converte "utilmente" i campi che riconosce come numerici eliminando gli zeri iniziali, convertendo le cose che riconosce come date, ecc.

Prendiamo ad esempio, si digita un codice UPC in un foglio di calcolo di Numbers 005566778899 , I numeri lo convertiranno automaticamente in 5566778899 . Questo non è quello che vorrei ...

Tuttavia, il modo io utilizzare Numbers, apro database con migliaia di codici UPC con zeri precedenti. Alcuni di essi contengono anche date quali numeri saranno anche riformattati. Fondamentalmente non voglio nessuna di queste funzionalità, voglio che il mio contenuto sia lasciato in pace.

Come posso convincere i numeri a lasciare intatti i miei dati quando apro un file CSV?

Convertire i campi in testo dopo l'importazione non sarà d'aiuto dato che i dati erano già stati incasinati con ...


Cosa intendi con "i dati erano già incasinati"? Intendi la conversione in testo dopo il file è aperto?
Daniel

All'apertura del file, sia Excel che i numeri cambieranno attorno a tutti i tuoi dati. Quindi qualunque cosa devo fare, devo farlo prima di aprire il file.
henryaaron

Risposte:


7

Se un campo in un file CSV inizia con un apostrofo ( ' ), sia Excel che Numbers tratteranno il campo come testo e non lo renderanno con alcuna formattazione numerica.

I file CSV sembrano cercare di forzare il rendering del testo attraverso i campi numerici racchiusi tra virgolette doppie, ma Numbers ed Excel non sembrano prendere il suggerimento che i numeri di virgolette doppie dovrebbero essere trattati come stringhe. Il trucco sembra essere quello di modificare i file CSV in modo che utilizzino il trucco "inizia con un singolo apostrofo" anziché il trucco "racchiusi tra virgolette" per i campi numerici, ma mantenere le virgolette per i campi di testo che includono la punteggiatura (tra virgole, virgolette, interruzioni di riga, ecc.).

Per elaborare i file CSV in modo che lo facciano, è possibile creare un'applicazione di Automator.

In Automator, crea una nuova applicazione.

Avrà una singola azione: Esegui Shell Script (passando l'input come argomenti). Ecco la sceneggiatura:

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

Salva l'applicazione risultante sul tuo desktop. Trascina i file CSV che desideri utilizzare in Numbers sull'icona dell'applicazione, che verranno convertiti in modo che Numbers mantenga i numeri nei campi come numeri letterali e non li formatti né elimini informazioni.

Eseguire il backup dei dati prima di provare questo; è possibile che una stringa particolarmente stranamente costruita in un campo di registrazione possa cancellare qui i risultati.

enter image description here


Sembra che questo lavoro abbia bisogno di un po 'di interazione. Questa discussione sarebbe meglio si svolgono in chat
Daniel

0

In particolare, ecco come gestire zeri iniziali . Penso che la tua domanda riguardi più la formattazione delle celle che quella automatica.

Come accennato, la funzione di correzione automatica è di per sé un elemento di sistema e deve essere disabilitata dalle Preferenze di Sistema.


La conversione delle celle in questo formato non sarà di aiuto dato che i dati erano già in disordine ...
henryaaron

1
Mi sarei aspettato che gli zeri tornassero se si formassero le celle, se Numbers rimuovesse in modo distruttivo quegli zeri durante l'importazione che farebbero veramente schifo. Forse dovrai formattare le celle prima dell'importazione.
Adam Eberbach

Lo fa sicuramente.
henryaaron
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.