Saya mengekspor data listview ke file csv. Ada kolom, 'Kontak Tidak'. Tipe data kolom ini adalah 20 ukuran bidang teks dalam akses MS. Membuka csv ini dengan Notepad, ini menunjukkan nilai data aktual, 12345678901234567890. Tetapi membukanya dengan MS Excel, ini menunjukkan 12345678901234500000.: O
Mengapa 5 karakter terakhir diubah menjadi nol? Di Excel, saya memformat ulang kolom ini ke format kategori 'Kustom' atau 'Nomor'. Setelah ini, ini menunjukkan 12345678901234500000. Jika tidak memformat ulang, biasanya itu menunjukkan 1.23457E + 19.
microsoft-excel
formatting
soclose
sumber
sumber
Jawaban:
Satu saran adalah meletakkan tanda kutip di depan angka ketika Anda mengekspor data ke format CSV. Jadi, bukannya
12345678901234567890
ekspor'12345678901234567890
.sumber
Excel memperlakukan data sebagai angka titik mengambang, yang dapat diperkirakan sebagai 1,23457E + 19.
Floating point tidak memberikan presisi 20 digit.
Ini adalah batasan Floating Point. Lihat halaman ini
sumber
Pertama, Anda tidak ingin menganggap ini sebagai angka karena 0123 akan menjadi 123 yang merupakan nomor telepon yang sama sekali berbeda. Membungkus nilai dalam tanda kutip ganda ketika Anda mengekspor harus cukup untuk membuat Excel memperlakukan kolom sebagai teks.
Saya perhatikan di masa lalu bahwa Excel menyediakan sangat sedikit kendali atas proses impor CSV jadi tergantung pada kebutuhan Anda, Anda dapat mempertimbangkan menggunakan VBA untuk kontrol lebih besar atas impor, atau pasca-pemrosesan CSV, atau menggunakan Open Office.
sumber
Jika Anda membuka file CSV dari jendela explorer (dengan mengklik dua kali pada file), Excel akan berusaha untuk secara otomatis menentukan bidang untuk Anda.
Jika Anda membuka Excel, maka buka file CSV Anda memiliki opsi untuk memilih pembatas dan jenis bidang sendiri. Ini akan memungkinkan Anda untuk mengatur Anda 'Kontak Tidak' sebagai teks, dan itu akan mengimpor dengan benar.
sumber
Jawabannya, seperti yang telah disarankan di sini, adalah bahwa nilainya harus berupa string.
Ini hanya upaya untuk membantu Anda memahami alasannya. Ini berarti itu akan diperlakukan sebagai string di Access juga, yang sekarang Anda khawatirkan. Cara terbaik untuk melihat perbedaan dan mungkin memahami apa yang dikatakan adalah memformat beberapa sel yang berbeda dalam lembar excel.
Forma satu sebagai format umum, satu sebagai angka, dan satu sebagai teks. (Format> Sel> Kategori Angka) Kemudian ketikkan nomor 20 karakter seperti 99999999999999999999. Simpan file sebagai format csv dan buka notepad untuk melihat perbedaannya. Sebelum entri dengan 'hanya memberitahu excel format sel dengan cara lain.
Anda menyebutkan mengekspor data tampilan daftar ke csv, jadi Anda harus mengontrol data tampilan daftar yang ingin Anda simpan sebagai teks, bukan numerik. Akses tidak akan pernah memiliki masalah dengan ini, kecuali jika Anda mencoba menggunakan nilai sebagai angka, tetapi mereka tampaknya digunakan sebagai angka pengidentifikasi, bukan nilai.
Apa sumber data listview? Menangani format sel sebelum data masuk ke lembar Anda harus menyelesaikan masalah Anda.
sumber
Dari eksperimen saya, Excel akan mendeteksi secara otomatis format bidang CSV kecuali jika Anda menentukannya
="Data Here"
Saya tidak yakin tentang bagaimana MS Access akan menginterpretasikan bidang-bidang di atas.
sumber
"=""123"""
tidak terbentuk dengan buruk. Dan Access 2003 akan membaca bidang pertama sebagai angka dan sisanya sebagai teks, kecuali jika Anda memberi tahu sebaliknya. Gagal pada yang terakhir dengan kesalahan parsing, tetapi jika bidang dikoreksi seperti yang disarankan maka Access akan membacanya sebagai string="123"
- itu tidak membuat upaya untuk menafsirkan rumus.Cukup gunakan
"=0123"
dalam file CSV, termasuk kutipan. Hati-hati dengan menyimpan kembali file ini karena CSV lain akan membatalkan=" ... "
bagian tersebut.Ada juga cara HTML jika Anda ingin menggunakan tabel sederhana sebagai spreadsheet Anda yang mungkin akan mempertahankan statusnya saat disimpan kembali, hanya saja itu bukan lagi CSV:
Jangan gunakan trik kutipan tunggal (') untuk menyelesaikan masalah impor karena hanya berlaku saat mengedit bidang saat Anda sudah di Excel. Dinyatakan secara berbeda, jika Anda mencoba mengimpor file CSV dengan bidang '0123, Anda akan berakhir dengan kutipan tunggal aktual di bidang string Anda juga.
sumber