Ho un database che tiene traccia delle vendite dei widget per numero di serie. Gli utenti inseriscono i dati e la quantità dell'acquirente e scansionano ogni widget in un programma client personalizzato. Quindi finalizzano l'ordine. Tutto funziona perfettamente.
Alcuni clienti desiderano un foglio di calcolo compatibile con Excel dei widget che hanno acquistato. Generiamo questo con uno script PHP che interroga il database e genera il risultato come CSV con il nome del negozio e i dati associati. Anche questo funziona perfettamente.
Se aperto in un editor di testo come Blocco note o vi, il file è simile al seguente:
"Account Number","Store Name","S1","S2","S3","Widget Type","Date"
"4173","SpeedyCorp","268435459705526269","","268435459705526269","848 Model Widget","2011-01-17"
Come puoi vedere, i numeri di serie sono presenti (in questo caso due volte, non tutti i numeri di serie secondari sono uguali) e sono lunghe stringhe di numeri. Quando questo file viene aperto in Excel, il risultato diventa:
Account Number Store Name S1 S2 S3 Widget Type Date
4173 SpeedyCorp 2.68435E+17 2.68435E+17 848 Model Widget 2011-01-17
Come avrai notato, i numeri di serie sono racchiusi tra virgolette doppie. Excel non sembra rispettare i qualificatori di testo nei file .csv. Quando si importano questi file in Access, non abbiamo difficoltà. Quando li apri come testo, nessun problema. Ma Excel, a colpo sicuro, converte questi file in immondizia inutile. Cercare di istruire gli utenti finali sull'arte di aprire un file CSV con un'applicazione non predefinita sta diventando, diciamo, noioso. C'è speranza? C'è un'impostazione che non sono riuscito a trovare? Questo sembra essere il caso di Excel 2003, 2007 e 2010.
Excel does not seem to respect text qualifiers in .csv files
- le doppie virgolette non sono qualificatori di testo, semplicemente consentono virgole nei tuoi dati, se non usi virgole nei tuoi dati allora sono prive di significato . Tutti i dati in un file CSV non sono tipizzati, quindi Excel può solo indovinare che il tuo numero seriale di grandi dimensioni è un numero , e questo è quando corri alla precisione massima di Excel di 15 cifre, che è ciò che sta troncando i tuoi numeri.