Ecco il patto. Ci stiamo avvicinando ai limiti, penso a cosa puoi fare con CSV, ma mi chiedo se qualcuno abbia una soluzione.
Abbiamo un file CSV che ha una dimensione di 357 MB. Download bene e non richiede troppo tempo con una buona connessione.
Tuttavia, la maggior parte dei client apre quel file in Excel. E ci sono diversi problemi:
- Un campo
00400
mostrerà come40
(zero iniziali rimossi) - Un valore di 0.04088100 diventerà 4.08E-2 (o qualcosa del genere)
- Date e orari vengono cambiati
La BAD fix: abbiamo provato ad aggiungere un =
carattere prima di "0040"
- funziona per file piccoli ma non per un file di grandi dimensioni - Excel non può trattarli tutti come formule, troppa memoria e file non si aprono mai
La buona soluzione: abbiamo aggiunto un carattere ASCII 28 (a File Stop
o FS
, vedi http://www.theasciicode.com.ar/extended-ascii-code/uppercase-slashed-zero-empty-set-ascii-code-157.html ) Tutti i campi con questo valore "nascosto" sono stati visualizzati correttamente, tranne per il fatto che sono lasciati giustificati (poiché trattati un testo)
L'unico problema: purtroppo la buona soluzione ha un problema. Quando usi la formattazione per giustificare a destra i campi con CHR (28) a sinistra, c'è un piccolo spazio a destra, che non puoi eliminare perché elimina invece il carattere giusto.
UNA POSSIBILE correzione: Abbiamo fatto alcuni esperimenti e abbiamo scoperto che l'aggiunta di CHR (157) a sinistra dei valori di campo abusati di Excel lo ha bloccato e giustificato a destra. Tuttavia , mi sento molto strano nel farlo, e mi chiedo se ci siano degli svantaggi.
Potrebbe sembrare una domanda oscura; Ho fatto molte ricerche su questo. C'è un approccio migliore? I requisiti non consentiranno il salvataggio del file come file .xlxs ecc.
.txt
file (che presenterà la procedura guidata di importazione del testo quando viene aperto in Excel e possono designare la colonna come testo); o averli IMPORT e non APRIRE il file CSV (che farà la stessa cosa).