Apakah ada yang punya ide di mana saya bisa menemukan beberapa kode javascript untuk mem-parsing data CSV?
javascript
csv
Pierre-Gilles Levallois
sumber
sumber
Jawaban:
Anda dapat menggunakan fungsi CSVToArray () yang disebutkan dalam entri blog ini.
sumber
undefined
untuk bidang kosong yang dikutip . Contoh:CSVToArray("4,,6")
memberi saya[["4","","6"]]
, tetapiCSVToArray("4,\"\",6")
memberi saya[["4",undefined,"6"]]
."([^\"\\"
seharusnya"([^\\"
. Kalau tidak, kutipan ganda di mana saja dalam nilai yang tidak dikutip akan mengakhirinya sebelum waktunya. Menemukan ini dengan cara yang sulit ...jQuery-CSV
Ini adalah plugin jquery yang dirancang untuk bekerja sebagai solusi ujung ke ujung untuk mem-parsing CSV ke dalam data Javascript. Ini menangani setiap kasus tepi tunggal yang disajikan dalam RFC 4180 , serta beberapa yang muncul untuk ekspor Excel / Google Spreadsheed (yaitu sebagian besar melibatkan nilai nol) yang tidak ada dalam spesifikasi.
Contoh:
Memperbarui:
Oh ya, saya mungkin juga harus menyebutkan bahwa itu sepenuhnya dapat dikonfigurasi.
Pembaruan 2:
Sekarang juga berfungsi dengan jQuery di Node.js. Jadi, Anda memiliki opsi untuk melakukan penguraian sisi-klien atau sisi-server dengan lib yang sama.
Pembaruan 3:
Sejak Google Code shutdown, jquery-csv telah dimigrasikan ke GitHub .
Penafian: Saya juga penulis jQuery-CSV.
sumber
csv
dalam kode solusi mengacu pada.csv filename
? Saya tertarik dengan alat JS / JQuery yang bagus untuk mem-parsing file csvSaya memiliki implementasi sebagai bagian dari proyek spreadsheet.
Kode ini belum diuji secara menyeluruh, tetapi siapa pun boleh menggunakannya.
Seperti yang dicatat oleh beberapa jawaban, implementasi Anda bisa lebih sederhana jika Anda benar-benar memiliki file DSV atau TSV , karena mereka melarang penggunaan catatan dan pemisah bidang dalam nilai. CSV, di sisi lain sebenarnya dapat memiliki koma dan baris baru di dalam bidang, yang memecah sebagian besar pendekatan berbasis regex dan split.
sumber
undefined
sel. Misalnya,console.log(CSV.parse("first,last,age\r\njohn,doe,"));
console.log(CSV.parse("0,,2,3"));
if ('\r' === chars[c]) { ... }
:if (end === c-1) { row.push(reviver(table.length-1, row.length, '')); }
Berikut adalah parser CSV yang sangat sederhana yang menangani bidang yang dikutip dengan koma, baris baru, dan lolos dari tanda kutip ganda. Tidak ada pemisahan atau RegEx. Ini memindai string input 1-2 karakter sekaligus dan membangun array.
Uji di http://jsfiddle.net/vHKYH/ .
sumber
if (cc == '\r' && nc == '\n' && !quote) { ++row; col = 0; ++c; continue; } if (cc == '\n' && !quote) { ++row; col = 0; continue; }
Inilah tata bahasa PEG (.js) saya yang tampaknya baik-baik saja di RFC 4180 (yaitu menangani contoh di http://en.wikipedia.org/wiki/Comma-separated_values ):
Cobalah di http://jsfiddle.net/knvzk/10 atau http://pegjs.majda.cz/online . Unduh parser yang dihasilkan di https://gist.github.com/3362830 .
sumber
csvToArray v1.3
Kompak (645 bytes) tetapi berfungsi untuk mengubah string CSV menjadi array 2D, sesuai dengan standar RFC4180.
https://code.google.com/archive/p/csv-to-array/downloads
Penggunaan Umum: jQuery
Penggunaan umum: Javascript
Ganti pemisah bidang
Ganti pemisah rekaman
Override Skip Header
Timpa semua
sumber
Saya tidak yakin mengapa saya tidak bisa kirtans ex. bekerja untukku. Tampaknya gagal di bidang kosong atau mungkin bidang dengan tanda koma ...
Yang ini tampaknya menangani keduanya.
Saya tidak menulis kode parser, hanya pembungkus di sekitar fungsi parser untuk membuat ini berfungsi untuk file. lihat Atribusi
sumber
Ekspresi reguler untuk penyelamatan! Beberapa baris kode ini menangani bidang yang dikutip dengan benar dengan tanda koma, kutipan, dan baris baru berdasarkan standar RFC 4180.
Anda tidak memerlukan parser-generator seperti lex / yacc. Ekspresi reguler menangani RFC 4180 dengan benar berkat tampilan positif di belakang, tampilan negatif di belakang, dan tampilan positif di depan.
Klon / unduh kode di https://github.com/peterthoeny/parse-csv-js
sumber
Saya telah membuat skrip javascript ini untuk mengurai CSV dalam objek string ke array. Saya merasa lebih baik untuk memecah seluruh CSV menjadi garis, bidang dan memprosesnya. Saya pikir itu akan memudahkan Anda untuk mengubah kode sesuai dengan kebutuhan Anda.
Saya harap ini akan membantu Anda. Terima kasih.
sumber
Mengapa tidak menggunakan saja .split (',')?
http://www.w3schools.com/jsref/jsref_split.asp
sumber