Saya memiliki database yang melacak penjualan widget berdasarkan nomor seri. Pengguna memasukkan data dan jumlah pembeli, dan memindai setiap widget ke dalam program klien khusus. Mereka kemudian menyelesaikan pesanan. Ini semua bekerja dengan sempurna.
Beberapa pelanggan menginginkan spreadsheet yang kompatibel dengan Excel dari widget yang telah mereka beli. Kami membuat ini dengan skrip PHP yang menanyakan database dan menampilkan hasilnya sebagai CSV dengan nama toko dan data terkait. Ini juga bekerja dengan sangat baik.
Ketika dibuka di editor teks seperti Notepad atau vi, file tersebut terlihat seperti ini:
"Account Number","Store Name","S1","S2","S3","Widget Type","Date"
"4173","SpeedyCorp","268435459705526269","","268435459705526269","848 Model Widget","2011-01-17"
Seperti yang Anda lihat, nomor seri ada (dalam hal ini dua kali, tidak semua serial sekunder adalah sama) dan merupakan rangkaian panjang angka. Ketika file ini dibuka di Excel, hasilnya menjadi:
Account Number Store Name S1 S2 S3 Widget Type Date
4173 SpeedyCorp 2.68435E+17 2.68435E+17 848 Model Widget 2011-01-17
Seperti yang mungkin telah Anda amati, nomor seri diapit oleh tanda kutip ganda. Excel tampaknya tidak menghargai kualifikasi teks dalam file .csv. Saat mengimpor file-file ini ke Access, kami tidak memiliki kesulitan. Saat membukanya sebagai teks, tidak ada masalah sama sekali. Tetapi Excel, tanpa gagal, mengubah file-file ini menjadi sampah yang tidak berguna. Mencoba menginstruksikan pengguna akhir dalam seni membuka file CSV dengan aplikasi non-standar menjadi, harus kita katakan, melelahkan. Apakah ada harapan? Apakah ada pengaturan yang tidak dapat saya temukan? Ini tampaknya menjadi kasus dengan Excel 2003, 2007, dan 2010.
Excel does not seem to respect text qualifiers in .csv files
- tanda kutip ganda bukanlah kualifikasi teks, mereka hanya membolehkan koma dalam data Anda, jika Anda tidak menggunakan koma dalam data Anda maka mereka tidak berarti . Semua data dalam file CSV tidak diketik, jadi Excel hanya dapat menebak bahwa nomor seri besar Anda adalah angka , dan saat itulah Anda menjalankan ke presisi maksimum Excel 15 digit, yang merupakan apa yang memotong angka Anda.