¿Alguien tiene una idea de dónde podría encontrar algún código javascript para analizar los datos CSV?
javascript
csv
Pierre-Gilles Levallois
fuente
fuente
Respuestas:
Puede usar la función CSVToArray () mencionada en esta entrada de blog.
fuente
undefined
para los campos vacíos que se cita . Ejemplo:CSVToArray("4,,6")
me da[["4","","6"]]
, peroCSVToArray("4,\"\",6")
me da[["4",undefined,"6"]]
."([^\"\\"
debería ser"([^\\"
. De lo contrario, una comilla doble en cualquier parte de un valor sin comillas lo terminará prematuramente. Encontré esto de la manera difícil ...jQuery-CSV
Es un complemento jquery diseñado para funcionar como una solución de extremo a extremo para analizar CSV en datos Javascript. Maneja todas las mayúsculas y minúsculas presentadas en RFC 4180 , así como algunas que aparecen para las exportaciones de Excel / Google Spreadsheed (es decir, en su mayoría con valores nulos) que falta la especificación.
Ejemplo:
Actualizar:
Ah sí, probablemente también debería mencionar que es completamente configurable.
Actualización 2:
Ahora también funciona con jQuery en Node.js. Por lo tanto, tiene la opción de realizar un análisis del lado del cliente o del lado del servidor con la misma biblioteca.
Actualización 3:
Desde el cierre de Google Code, jquery-csv se ha migrado a GitHub .
Descargo de responsabilidad: también soy el autor de jQuery-CSV.
fuente
csv
en el código de la solución consulte el.csv filename
? Estoy interesado en una buena herramienta JS / JQuery para analizar un archivo csvTengo una implementacion como parte de un proyecto de hoja de cálculo.
Este código aún no se ha probado exhaustivamente, pero cualquiera puede usarlo.
Sin embargo, como se señaló en algunas de las respuestas, su implementación puede ser mucho más simple si realmente tiene un archivo DSV o TSV , ya que no permiten el uso de los separadores de registros y campos en los valores. CSV, por otro lado, en realidad puede tener comas y líneas nuevas dentro de un campo, lo que rompe la mayoría de los enfoques basados en expresiones regulares y divididas.
fuente
undefined
celda. Por ejemplo,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, '')); }
Aquí hay un analizador CSV extremadamente simple que maneja los campos entre comillas, nuevas líneas y comillas dobles. No hay división ni RegEx. Escanea la cadena de entrada de 1 a 2 caracteres a la vez y crea una matriz.
Pruébelo en http://jsfiddle.net/vHKYH/ .
fuente
if (cc == '\r' && nc == '\n' && !quote) { ++row; col = 0; ++c; continue; } if (cc == '\n' && !quote) { ++row; col = 0; continue; }
Aquí está mi gramática PEG (.js) que parece funcionar bien en RFC 4180 (es decir, maneja los ejemplos en http://en.wikipedia.org/wiki/Comma-separated_values ):
Pruébelo en http://jsfiddle.net/knvzk/10 o http://pegjs.majda.cz/online . Descargue el analizador generado en https://gist.github.com/3362830 .
fuente
csvToArray v1.3
Una función compacta (645 bytes) pero compatible para convertir una cadena CSV en una matriz 2D, conforme al estándar RFC4180.
https://code.google.com/archive/p/csv-to-array/downloads
Uso común: jQuery
Uso común: Javascript
Anular separador de campo
Anular separador de registros
Anular Saltar encabezado
Anular todo
fuente
No estoy seguro de por qué no pude kirtans ex. para trabajar para mi Parecía estar fallando en campos vacíos o tal vez campos con comas finales ...
Este parece manejar ambos.
No escribí el código del analizador, solo un contenedor alrededor de la función del analizador para que esto funcione para un archivo. ver atribución
fuente
Expresiones regulares al rescate! Estas pocas líneas de código manejan los campos correctamente entre comillas, comillas y nuevas líneas incrustadas basadas en el estándar RFC 4180.
No necesita un generador de analizadores como lex / yacc. La expresión regular maneja RFC 4180 correctamente gracias a la mirada hacia atrás positiva, hacia atrás negativa y hacia adelante positiva.
Clonar / descargar código en https://github.com/peterthoeny/parse-csv-js
fuente
He construido este script javascript para analizar un CSV en cadena para agrupar el objeto. Me parece mejor dividir todo el CSV en líneas, campos y procesarlos en consecuencia. Creo que le facilitará cambiar el código para satisfacer sus necesidades.
Espero que te ayude. Gracias.
fuente
¿Por qué no simplemente usar .split (',')?
http://www.w3schools.com/jsref/jsref_split.asp
fuente