Saat mencoba mencari tahu cara mendapatkan CSV agar terbuka dengan benar di Excel pada PC Spanyol (milik pelanggan), saya menemukan banyak jawaban yang merekomendasikan penggunaan sep=,
di bagian atas file:
- Cara termudah untuk membuka CSV dengan koma di Excel
- Cara mengontrol impor CSV ke Excel 2010
- Bagaimana cara membuka file CSV yang dibatasi titik koma di Excel versi AS
- Spasi atau tab sebagai pemisah dalam CSV
- Bagaimana cara mendapatkan Excel untuk menafsirkan koma sebagai pembatas default dalam file CSV?
Di sisi lain, pendekatan ini berfungsi tetapi tidak ada jawaban yang memberikan informasi lebih lanjut tentang dari mana pilihan metadata ini berasal. Saya telah mencoba untuk mencari artinya (dan karenanya menemukan semua jawaban itu) tetapi belum dapat memperoleh informasi lebih lanjut terutama mengingat bahwa tanda baca sangat sulit untuk dicari.
Perhatian utama saya adalah apakah ini fitur khusus Excel atau tidak . Saya menduga itu tetapi tidak menemukan apa pun yang pasti untuk mengkonfirmasi.
Beberapa pertanyaan terkait adalah:
- Karakter apa yang dapat digunakan dalam pengaturan ini?
- Apa pengaturan lain yang tersedia (mis. Karakter terminasi baris, karakter kutipan, dll).
- Apakah ada alat lain yang secara resmi mendukung fitur ini?
Saya berharap ada sepotong dokumentasi di suatu tempat di mana seseorang dapat mengarahkan saya ke yang akan menjawab semua pertanyaan ini dan banyak lagi; Aku hanya belum bisa menemukannya.
Beberapa klarifikasi:
Ini sep=
bukan parameter untuk parser. Ini dimaksudkan untuk ditempatkan di dalam CSV. Contoh:
sep=|
"LETTER"|"ANIMAL"
"a"|"aardvark"
"b"|"bear"
"c"|"cow"
sumber
Jawaban:
RFC 4180 umumnya diakui sebagai standar untuk format CSV, dan tidak menyebutkan fitur seperti itu.
Model W3C untuk Data Tabular dan Metadata di Web menyebutkannya sebagai fitur yang tidak berada dalam cakupannya:
Jadi, sementara saya tidak menemukan bukti langsung bahwa fitur ini khusus untuk Excel, ini tampaknya masih merupakan kasus karena tampaknya tidak ada dokumen standardisasi yang mencakup fitur itu.
sumber
Untuk berkontribusi terhadap jawaban atas salah satu pertanyaan Anda: "Apakah ada alat lain yang secara resmi mendukung fitur ini?"
Ini tidak didukung oleh Apple Numbers (Saya sudah menguji menggunakan Numbers versi 3.6.2).
Ini juga tidak didukung oleh csv2json ( https://www.npmjs.com/package/csv2json ) atau csvtojson ( https://www.npmjs.com/package/csvtojson ).
sumber
Instruksi sep = digunakan di semua negara di mana koma digunakan sebagai pembatas desimal, seperti Italia. Karena Excel mengekspor CSV menggunakan titik koma alih-alih koma di negara-negara tersebut, jika Anda ingin memastikan bahwa file dapat dibaca di AS atau negara lain, Anda PERLU
sep =;
di atas file. Ini adalah khusus Excel dan mungkin diabaikan oleh aplikasi lain.
sumber
Hampir semua alat yang dapat mengimpor dari file .csv mengakui bahwa koma bukan satu-satunya pemisah yang mungkin, tab sudah umum untuk waktu yang lama misalnya. Saya pikir ini kembali ke hari-hari kartu punch bahkan, bahwa perlu ada beberapa karakter yang diakui sebagai bidang data akhir - dengan pengecualian dari sistem yang menggunakan bidang lebar tetap atau bidang awalan panjang hampir setiap sistem membutuhkan ini sejak munculnya komputer.
3 penting adalah pemisah bidang, pemisah catatan dan akhir penanda data, csv secara default menggunakan koma, baris baru dan akhir file untuk masing-masing tetapi hampir semua input yang valid dapat digunakan, Anda memerlukan mekanisme untuk keluar dari spidol khusus jika itu terjadi dalam data Anda yang valid.
Satu sistem bersejarah yang saya temui menggunakan baris baru untuk ujung lapangan, 2 baris kosong untuk akhir catatan dan
*!*!* END *!*!*
untuk akhir data. Saya biasanya menemukan semua yang,\t|:
digunakan sebagai pemisah bidang bersama dengan berbagai karakter kontrol.Satu hal yang perlu diwaspadai adalah bahwa Perancis dan lainnya menggunakan koma sebagai titik desimal - ini dapat menyebabkan semua jenis kesenangan dan permainan. Ada tingkat standardisasi untuk file csv di rfc4180 tetapi ada kalanya Anda perlu mengedit file secara manual saat mengekspor dari satu program dan mengimpor ke yang lain.
Untuk menjawab bagian kedua dari pertanyaan Anda Python, misalnya, termasuk pembaca csv / penulis sebagai salah satu perpustakaan standar yang menawarkan opsi berikut:
delimiter
- Ini adalah pemisah bidang, (kecuali lolos).doublequote
- Jika benar maka"
dalam suatu bidang akan direpresentasikan sebagai""
escapechar
- menghilangkan makna khusus dari karakter berikut, misalnya jika diatur\
maka kutipan dapat direpresentasikan sebagai\"
lineterminator
- biasanya satu dari\n
,\r
,\r\n
atau\n\r
quotechar
- karakter yang digunakan untuk mengutip string, biasanya"
atau'
quoting
- Tandai sebagai salah satu dari:ALL
- Setiap bidang dalam tanda kutip, yaitu:"1","Free Beer","ASAP"
MINIMAL
- Hanya kolom kutipan yang memiliki karakter khusus, yaitu:1,"Beer, (Free)", Now, Please
QUOTE_NONNUMERIC
- Mengutip apa pun yang bukan angka, yaitu:1,"Beer, (Free)", "Now", "Please"
NONE
- Jangan mengutip kata ganti melarikan diri, yaitu:1,Beer\, (Free), Now, Please
skipinitialspace
- lewati ruang terdepan dari setiap bidang sehingga Anda dapat menggunakan,
alih-alih hanya,
sebagai pemisah bidang.Secara umum alat yang lebih fleksibel dan dipikirkan dengan baik yang dapat mengimpor file csv adalah lebih banyak pilihan ini, (mungkin dengan nama dan / atau mekanisme yang berbeda), yang akan dimilikinya.
sumber
sep=
bukan parameter untuk parser. Saya telah menambahkan beberapa klarifikasi untuk pertanyaan saya.sep=
itu dan dari mana asalnya.