Spesifikasi CSV adalah salah satu yang saya temukan diimplementasikan dalam banyak cara berbeda... pada dasarnya sepertinya hanya setengah spesifikasi yang membuat frustrasi mengingat popularitasnya.
Untuk memasukkan baris baru di dalam sel dalam CSV, sel mungkin perlu dibungkus, atau baris baru mungkin perlu diloloskan. Anda akan melihat dari dokumen tertaut ada tiga cara untuk melakukan ini - dan program yang berbeda memperlakukannya secara berbeda:
- Excel membungkus seluruh sel dalam tanda kutip ganda:sel dapat memiliki karakter baris baru (tidak lolos) di dalamnya dan dianggap sebagai sel tunggal, asalkan dibungkus dengan tanda kutip ganda (perhatikan juga Anda harus menggunakan gaya excel tanda kutip ganda keluar di dalam isi sel)
- Program lain menyisipkan satu garis miring terbalik sebelum karakter, oleh karena itu baris yang diakhiri dengan
\
tidak dianggap sebagai akhir baris, tetapi karakter baris baru di dalam sel. Sebuah sel dapat memiliki karakter baris baru yang tidak lolos selama karakter tersebut didahului oleh karakter garis miring terbalik. - Yang lain masih mengganti baris baru dengan pelolosan karakter gaya-C, urutan karakter sebenarnya
\n
atau\r\n
. Dalam hal ini sel telah sepenuhnya lolos dari karakter baris baru.
Masalahnya diperparah oleh potensi kebutuhan untuk keluar dari karakter kontrol (serta konten lainnya (mis. "
di #1, dan \
di #2+3) dan gaya pelolosan yang berbeda (mis. kutipan yang disematkan dapat diloloskan sebagai:kutipan ganda ganda ""
atau tanda kutip backslash-double \"
)
Saran saya :buat dokumen open-office dengan banyak baris dan karakter kunci escape dan lihat bagaimana open-office menghasilkan CSV
mengajukan. Dari sana Anda dapat memutuskan metode mana di atas yang akan digunakan untuk baris baru di dalam sel, dan metode pelolosan mana.
contoh gaya-1 (excel):
#num,str,num
1,"Hello
World",1990
2,"Yes",1991
contoh gaya-2:
#num,str,num
1,Hello \
Word,1990
2,Yes,1991
contoh gaya-3:
#num,str,num
1,Hello \nWorld,1990
2,Yes,1991