Data & spreadsheet · CSV Lebih bersih
Mengapa Excel Diam-diam Merusak CSV Bidang: Angka Nol di Depan, Tanggal, dan ID Panjang
· Mengapa itu penting
csv pembersihan data spreadsheet
Membuka CSV di spreadsheet tidaklah netral: kode pos kehilangan angka nol, kode menjadi tanggal, dan pengidentifikasi panjang berubah menjadi notasi ilmiah. Postingan ini menjelaskan mengapa hal ini terjadi, apa yang tidak dapat dipulihkan, dan bagaimana menjaga file mentah tetap utuh.
File yang baik-baik saja sampai seseorang membukanya — kode pos 01234 menjadi 1234, dan kerusakan disimpan kembali
File meninggalkan sistem sumber dengan kode pos 01234, dibuka di spreadsheet, dan kembali ke analis dengan 1234. Format CSV asli tidak salah: berisi teks dengan awalan nol. Perbedaannya muncul ketika program menebak kolom tersebut berupa angka dan kemudian menyimpan nilai interpretasinya. Setelah seseorang menimpa file sumber, alat pembersih selanjutnya tidak dapat mengetahui apakah 1234 dulu berarti 01234 atau 001234. Simpan ekspor yang belum tersentuh sebelum memeriksanya di spreadsheet mana pun.
Ketik tebakan terbuka — bagaimana spreadsheet menyimpulkan angka, tanggal, dan rumus dari teks, dan mengapa CSV tidak memberi mereka cara untuk mengatakan sebaliknya
CSV mengekspresikan baris, pemisah, dan teks kutipan; itu tidak menyatakan nomor per kolom, tanggal atau jenis kode pos. Spreadsheet yang membukanya secara langsung harus membuat tebakan. Nilai yang diawali dengan angka dapat menjadi angka, 03-04 dapat diartikan sebagai tanggal menurut lokalnya, dan nilai yang diawali dengan = dapat diartikan sebagai rumus pada beberapa aplikasi. Kutipan "01234" melindungi pembatas CSV, bukan klasifikasi masa depan sebagai teks oleh panduan impor otomatis.
Korban klasik — angka nol di depan, pengidentifikasi numerik panjang, apa pun yang menyerupai tanggal, dan nilai yang diawali dengan tanda sama dengan
Angka nol di awal kode pos dan SKU, pengidentifikasi dengan angka yang lebih signifikan daripada yang dapat dipertahankan oleh format angka spreadsheet, dan string dengan tampilan tanggal yang ambigu merupakan korban klasik. Notasi ilmiah itu sendiri bukan merupakan kerusakan—ini adalah pilihan tampilan—tetapi menyimpan ID yang panjang setelah konversi numerik dapat kehilangan angka pastinya. Nilai yang tampak seperti rumus dari data yang tidak tepercaya merupakan risiko keamanan tersendiri. Ekspor ToolAcre CSV memiliki opsi aman untuk injeksi formula yang mengawali awal yang berisiko, dengan trade-off yang tidak lagi dihitung oleh sel yang dihitung dengan sengaja.
Mengapa kerusakan sering kali bersifat permanen — presisi yang hilang saat penyimpanan dan tanggal yang diurutkan ulang dalam format berbeda tidak dapat dikembalikan dari output
Misalkan referensi pelanggan 20 digit dibulatkan setelah interpretasi numerik dan disimpan. Digit asli yang hilang tidak dapat ditebak kembali dari CSV baru. Tanggal yang dikonversi ke tanggal internal dan diekspor ke lokal lain mungkin hilang, baik yang dimaksud sumbernya adalah 3 April atau Maret 4. Inilah sebabnya mengapa “Saya akan membersihkannya nanti” bukanlah langkah pertama yang aman. Pertahankan byte mentah sebelum perangkat lunak apa pun dengan pengetikan otomatis sempat menggantinya.
Sebaliknya, kerjakan teks mentah — menyimpan salinan yang belum disentuh oleh spreadsheet, dan membersihkannya sebagai teks sebelum melakukan impor apa pun
Kerjakan salinan ekspor teks dengan parser yang menganggap sel sebagai string. Pembersih ToolAcre CSV mem-parsing pembatas dan bidang yang dikutip di browser dan menampilkan peringatan baris tanpa secara diam-diam membuang sel tambahan. Periksa apakah header masih menyertakan byte awal aslinya dan apakah pengidentifikasi berisi karakter sumber yang tepat. Membersihkan ruang atau duplikat terpisah dari interpretasi makna suatu bidang; kode pos harus tetap berupa string meskipun setiap karakter berupa angka.
Contoh praktis — ekspor produk dengan SKU dan kode pos, menunjukkan perubahan apa yang terjadi pada spreadsheet dan apa yang dipertahankan oleh pembersihan tingkat teks
Gunakan ekspor ilustratif dengan header sku;kode pos;deskripsi dan baris 00042;01234;"Merah, kecil" dan 00043;00105;"Biru, besar". Impor koma yang naif akan menciutkan kolom titik koma, sementara pengetikan numerik otomatis dapat mengubah 00042 dan 01234 menjadi 42 dan 1234. CSV Penguraian titik koma Cleaner menghasilkan tiga kolom tekstual, termasuk koma yang dikutip di dalam setiap deskripsi; mengekspor salinan yang sudah dibersihkan masih mengharuskan Anda mengimpor kolom sebagai teks ke dalam spreadsheet tujuan. Bandingkan file mentah dan file bolak-balik sebelum mengirimnya ke bagian pembelian.
Apa yang tidak tercakup dalam hal ini — memulihkan nilai yang telah dimusnahkan oleh penyimpanan sebelumnya, atau mengonfigurasi panduan impor spreadsheet
Posting ini tidak dapat memulihkan digit pengidentifikasi atau angka nol di depan yang sudah dimusnahkan dalam file spreadsheet yang disimpan. Pembersih tingkat teks juga tidak mengonfigurasi panduan impor Excel, pengaturan lokal rekan kerja, atau skema database. Setelah file mentah aman, ikuti petunjuk impor teks vendor spreadsheet untuk kolom kode dan ID. Uji sampel kecil melalui alur kerja penerima yang tepat; "terbuka ke dalam kolom" tidak membuktikan "mempertahankan setiap string".
Perbaiki file sebelum spreadsheet melihatnya — bagaimana ToolAcre CSV Cleaner memungkinkan Anda memperbaiki pembatas, pengkodean, dan kutipan sebelum ekspor dibuka di spreadsheet
Perbaiki file sebelum spreadsheet melihatnya, lalu pilih mode impor yang menjaga pengidentifikasi tetap tekstual. CSV Pembersih dapat memperbaiki pembatas, pengkodean, dan kutipan ekspor yang tidak dimodifikasi secara lokal. Ini tidak membuat spreadsheet berhenti menebak jenis bidang atas nama Anda, sehingga perbandingan asli dan pasca-impor yang belum tersentuh tetap menjadi perlindungan yang paling penting.