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.
sumber
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.Jawaban:
Excel adalah sampah yang tidak berguna.
Larutan
Saya akan sedikit terkejut jika ada klien yang menginginkan data Anda dalam format Excel tidak dapat mengubah format yang terlihat pada tiga kolom menjadi "Angka" dengan nol tempat desimal atau ke "teks." Tetapi mari kita asumsikan bahwa cara mendokumentasikan yang singkat sudah tidak mungkin.
Pilihan Anda adalah:
="268435459705526269","",="268435459705526269"
(Anda juga dapat="268435459705526269",,="268435459705526269"
menghemat 2 karakter sendiri). Ini memiliki keuntungan menampilkan dengan benar, dan mungkin secara umum bermanfaat, tetapi rusak secara halus (karena merupakan rumus).Hati-hati dengan opsi 3, karena beberapa program (termasuk Excel & Open Office Calc), tidak akan lagi memperlakukan koma di dalam
=""
bidang sebagai lolos. Itu berarti="abc,xyz"
akan menjangkau dua kolom dan memecah impor.Menggunakan format
"=""abc,xy"""
memecahkan masalah ini, tetapi metode ini masih membatasi Anda hingga 255 karakter karena batas panjang rumus Excel.sumber
Kami memiliki masalah yang sama di mana kami memiliki file CSV dengan kolom yang berisi rentang seperti 3-5 dan Excel akan selalu mengonversinya menjadi tanggal misalnya 3-5 akan menjadi 3 Mar, setelah itu beralih kembali ke numerik memberi kami integer tanggal yang tidak berguna. Kami berhasil melewatinya
Anda bisa melakukan hal yang sama di sini saya pikir.
Tepuk tangan
sumber
Solusi yang lebih baik adalah menghasilkan Buku Kerja XML. Seperti ini:
File harus memiliki ekstensi .xml. Excel dan OpenOffice membukanya dengan benar.
sumber
Solusi saya: Saya punya masalah yang sama dengan mengimpor nomor seri. Mereka tidak harus diperlakukan sebagai angka, yaitu tidak ada fungsi matematika yang dilakukan di atasnya, tetapi kita perlu seluruh angka di sana. Hal paling sederhana yang saya miliki adalah memasukkan spasi di nomor seri. mis. "12345678 90123456 1234". Saat Excel mengimpornya, itu akan diperlakukan sebagai teks dan bukan numerik.
sumber
Saya memiliki nomor rekening lama yang kacau.
Beginilah cara saya memperbaikinya:
Buka file.csv Anda di Libre Office / Open Office (Anda mungkin harus menentukan pembatas dll.) Kemudian menyimpan file sebagai file Excel XML.
Kemudian buka file ini di Excel dan kemudian Anda akan melihat kolom tidak lagi diubah menjadi format ilmiah atau apa pun. Agar aman klik kanan kolom dan secara eksplisit mengatur format sebagai Teks, lalu simpan sebagai format file Excel.
Buka file format Excel dan kolom masih boleh ok!
sumber
Panduan Impor adalah solusi terbaik untuk pengguna biasa dan situasi sekali saja. Jika Anda membutuhkan solusi terprogram, Anda dapat menggunakan metode QueryTables.Add (yang digunakan oleh Wizard Impor di belakang layar).
sumber