У кого-нибудь есть идея, где я мог бы найти какой-нибудь код JavaScript для анализа данных CSV?
javascript
csv
Пьер Жиль Леваллуа
источник
источник
Ответы:
Вы можете использовать функцию CSVToArray (), упомянутую в этой записи блога.
источник
undefined
для пустых полей, которые заключены в кавычки . Пример:CSVToArray("4,,6")
дает мне[["4","","6"]]
, ноCSVToArray("4,\"\",6")
дает мне[["4",undefined,"6"]]
."([^\"\\"
должно быть"([^\\"
. В противном случае двойная кавычка в любом месте значения без кавычек преждевременно завершит его. Нашел этот трудный путь ...JQuery-CSV
Это плагин jquery, разработанный как комплексное решение для анализа CSV в данных Javascript. Он обрабатывает каждый отдельный крайний случай, представленный в RFC 4180 , а также некоторые всплывающие окна для экспорта в Excel / Google Spreadsheed (т. Е. В основном с нулевыми значениями), которые отсутствуют в спецификации.
Пример:
Обновить:
О да, я должен также упомянуть, что он полностью настраивается.
Обновление 2:
Теперь он работает и с jQuery на Node.js. Таким образом, у вас есть возможность выполнять синтаксический анализ на стороне клиента или на стороне сервера с одной и той же библиотекой lib.
Обновление 3:
После завершения работы с Google Code jquery-csv был перенесен на GitHub .
Отказ от ответственности: я также являюсь автором jQuery-CSV.
источник
csv
в коде решений относятся к.csv filename
? меня интересует хороший инструмент JS / JQuery для анализа CSV-файлаУ меня есть реализация как часть проекта электронной таблицы.
Этот код еще не полностью протестирован, но любой может его использовать.
Однако, как отмечалось в некоторых ответах, ваша реализация может быть намного проще, если у вас действительно есть файл DSV или TSV , поскольку они запрещают использование разделителей записей и полей в значениях. CSV, с другой стороны, может иметь запятые и символы новой строки внутри поля, что нарушает большинство подходов на основе регулярных выражений и разбиения.
источник
undefined
ячейка. Например,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, '')); }
Вот чрезвычайно простой анализатор CSV, который обрабатывает заключенные в кавычки поля с запятыми, новыми строками и экранированными двойными кавычками. Там нет разделения или RegEx. Он сканирует входную строку по 1-2 символа за раз и строит массив.
Проверьте это на http://jsfiddle.net/vHKYH/ .
источник
if (cc == '\r' && nc == '\n' && !quote) { ++row; col = 0; ++c; continue; } if (cc == '\n' && !quote) { ++row; col = 0; continue; }
Вот моя грамматика PEG (.js), которая, кажется, хорошо работает в RFC 4180 (то есть она обрабатывает примеры на http://en.wikipedia.org/wiki/Comma-separated_values ):
Попробуйте это на http://jsfiddle.net/knvzk/10 или http://pegjs.majda.cz/online . Загрузите сгенерированный анализатор по адресу https://gist.github.com/3362830 .
источник
csvToArray v1.3
Компактная (645 байт), но совместимая функция для преобразования строки CSV в двумерный массив в соответствии со стандартом RFC4180.
https://code.google.com/archive/p/csv-to-array/downloads
Распространенное использование: jQuery
Общее использование: Javascript
Переопределить разделитель полей
Переопределить разделитель записей
Переопределить заголовок пропуска
Переопределить все
источник
Я не уверен, почему я не мог киртанов бывших. работать на меня. Похоже, что это сбой на пустых полях или, может быть, поля с запятыми ...
Этот, кажется, справиться с обоими.
Я не писал код парсера, просто обертку вокруг функции парсера, чтобы заставить эту работу работать с файлом. см. Атрибуция
источник
Регулярные выражения на помощь! Эти несколько строк кода обрабатывают правильно заключенные в кавычки поля со встроенными запятыми, кавычками и символами новой строки на основе стандарта RFC 4180.
Вам не нужен генератор парсера, такой как lex / yacc. Регулярное выражение правильно обрабатывает RFC 4180 благодаря позитивному взгляду сзади, негативному взгляду сзади и позитивному прогнозированию.
Клонировать / скачать код на https://github.com/peterthoeny/parse-csv-js
источник
вот мой простой ванильный JS:
источник
Я построил этот сценарий JavaScript для анализа CSV в строке для объекта массива. Я считаю, что лучше разбить весь CSV на строки, поля и обработать их соответственно. Я думаю, что вам будет проще изменить код в соответствии с вашими потребностями.
Я надеюсь, что это поможет вам. Спасибо.
источник
Почему бы просто не использовать .split (',')?
http://www.w3schools.com/jsref/jsref_split.asp
источник