Saya tahu ini adalah pertanyaan lama, tetapi masalahnya tidak akan hilang segera. File CSV mudah dihasilkan dari sebagian besar bahasa pemrograman, agak kecil, dapat dibaca oleh manusia dalam sebuah krisis dengan editor teks biasa, dan ada di mana-mana.
Masalahnya tidak hanya dengan tanggal dalam bidang teks, tetapi numerik apa pun juga akan dikonversi dari teks ke angka. Beberapa contoh di mana ini bermasalah:
- ZIP / kode pos
- nomor telepon
- nomor ID pemerintah
yang terkadang dapat dimulai dengan satu atau lebih nol (0), yang dibuang ketika dikonversi ke numerik. Atau nilai berisi karakter yang dapat dikacaukan dengan operator matematika (seperti pada tanggal: /, -).
Dua kasus yang saya bisa memikirkan bahwa solusi "mengawali =", seperti yang disebutkan sebelumnya, mungkin tidak ideal adalah
- di mana file mungkin diimpor ke dalam program selain MS Excel (fungsi Penggabungan MS Word terlintas dalam pikiran),
- di mana keterbacaan manusia mungkin penting.
Retas saya untuk mengatasi ini
Jika satu pra / menambahkan karakter non-numerik dan / atau non-tanggal dalam nilai, nilai akan dikenali sebagai teks dan tidak dikonversi. Karakter yang tidak dicetak akan baik karena tidak akan mengubah nilai yang ditampilkan. Namun, karakter spasi lama yang biasa (\ s, ASCII 32) tidak berfungsi untuk ini karena akan dipotong oleh Excel dan kemudian nilainya masih akan dikonversi. Tetapi ada berbagai karakter ruang cetak dan non-cetak lainnya yang akan berfungsi dengan baik. Namun yang termudah adalah menambahkan (menambahkan setelah) karakter tab sederhana (\ t, ASCII 9).
Manfaat dari pendekatan ini:
- Tersedia dari keyboard atau dengan kode ASCII yang mudah diingat (9),
- Itu tidak mengganggu impor,
- Biasanya tidak mengganggu hasil Gabungan Surat (tergantung pada tata letak templat - tetapi biasanya hanya menambah ruang yang luas di akhir baris). (Namun, jika ini merupakan masalah, lihat karakter lain misalnya ruang lebar nol (ZWSP, Unicode U + 200B)
- bukan halangan besar saat melihat CSV di Notepad (dll),
- dan dapat dihapus dengan menemukan / mengganti di Excel (atau Notepad dll).
- Anda tidak perlu mengimpor CSV, tetapi cukup klik dua kali untuk membuka CSV di Excel.
Jika ada alasan Anda tidak ingin menggunakan tab, cari di tabel Unicode untuk hal lain yang cocok.
Pilihan lain
mungkin untuk menghasilkan file XML, yang format tertentu juga diterima untuk diimpor oleh versi MS Excel yang lebih baru, dan yang memungkinkan lebih banyak opsi mirip dengan format .XLS, tapi saya tidak punya pengalaman dengan ini.
Jadi ada berbagai opsi. Tergantung pada persyaratan / aplikasi Anda, satu mungkin lebih baik daripada yang lain.
Tambahan
Perlu dikatakan bahwa versi yang lebih baru (2013+) dari MS Excel tidak lagi membuka CSV dalam format spreadsheet - satu lagi speedbump dalam alur kerja seseorang membuat Excel kurang bermanfaat ... Setidaknya, ada instruksi untuk menyiasatinya. Lihat misalnya Stackoverflow ini: Bagaimana cara menampilkan file .csv dengan benar dalam Excel 2013?
.