Hat jemand eine Idee, wo ich Javascript-Code zum Parsen von CSV-Daten finden könnte?
javascript
csv
Pierre-Gilles Levallois
quelle
quelle
Antworten:
Sie können die in diesem Blogeintrag erwähnte Funktion CSVToArray () verwenden .
quelle
undefined
für leere Felder , die in Anführungszeichen gesetzt werden . Beispiel:CSVToArray("4,,6")
gibt mir[["4","","6"]]
,CSVToArray("4,\"\",6")
gibt mir aber[["4",undefined,"6"]]
."([^\"\\"
sollte sein"([^\\"
. Andernfalls wird ein doppeltes Anführungszeichen an einer beliebigen Stelle in einem nicht zitierten Wert vorzeitig beendet. Fand das auf die harte Tour ...jQuery-CSV
Es ist ein JQuery-Plugin, das als End-to-End-Lösung zum Parsen von CSV in Javascript-Daten entwickelt wurde. Es behandelt jeden einzelnen Randfall , der in RFC 4180 dargestellt wird , sowie einige Fälle , die für Excel / Google Spreadsheed-Exporte (dh meistens mit Nullwerten) angezeigt werden, bei denen die Spezifikation fehlt.
Beispiel:
Aktualisieren:
Oh ja, ich sollte wahrscheinlich auch erwähnen, dass es vollständig konfigurierbar ist.
Update 2:
Es funktioniert jetzt auch mit jQuery auf Node.js. Sie haben also die Möglichkeit, entweder clientseitig oder serverseitig mit derselben Bibliothek zu analysieren.
Update 3:
Seit dem Herunterfahren von Google Code wurde jquery-csv auf GitHub migriert .
Haftungsausschluss: Ich bin auch Autor von jQuery-CSV.
quelle
csv
im Lösungscode auf die.csv filename
? Ich bin an einem guten JS / JQuery-Tool interessiert, um eine CSV-Datei zu analysierenIch habe eine Implementierung als Teil eines Tabellenkalkulationsprojekts.
Dieser Code wurde noch nicht gründlich getestet, kann aber von jedem verwendet werden.
Wie einige der Antworten jedoch vermerkten, kann Ihre Implementierung viel einfacher sein, wenn Sie tatsächlich über eine DSV- oder TSV- Datei verfügen , da die Verwendung der Datensatz- und Feldtrennzeichen in den Werten nicht zulässig ist. CSV hingegen kann tatsächlich Kommas und Zeilenumbrüche in einem Feld enthalten, wodurch die meisten Regex- und Split-basierten Ansätze gebrochen werden.
quelle
undefined
Zelle führt. Zum Beispielconsole.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, '')); }
Hier ist ein extrem einfacher CSV-Parser, der Felder in Anführungszeichen mit Kommas, neuen Zeilen und doppelten Anführungszeichen behandelt. Es gibt keine Aufteilung oder RegEx. Es scannt die Eingabezeichenfolge mit jeweils 1-2 Zeichen und erstellt ein Array.
Testen Sie es unter http://jsfiddle.net/vHKYH/ .
quelle
if (cc == '\r' && nc == '\n' && !quote) { ++row; col = 0; ++c; continue; } if (cc == '\n' && !quote) { ++row; col = 0; continue; }
Hier ist meine PEG (.js) Grammatik, die bei RFC 4180 in Ordnung zu sein scheint (dh sie behandelt die Beispiele unter http://en.wikipedia.org/wiki/Comma-separated_values ):
Probieren Sie es unter http://jsfiddle.net/knvzk/10 oder http://pegjs.majda.cz/online aus . Laden Sie den generierten Parser unter https://gist.github.com/3362830 herunter .
quelle
csvToArray v1.3
Eine kompakte (645 Byte), aber kompatible Funktion zum Konvertieren einer CSV-Zeichenfolge in ein 2D-Array gemäß dem RFC4180-Standard.
https://code.google.com/archive/p/csv-to-array/downloads
Allgemeine Verwendung: jQuery
Allgemeine Verwendung: Javascript
Feldtrennzeichen überschreiben
Datensatztrennzeichen überschreiben
Skip Header überschreiben
Alle überschreiben
quelle
Ich bin mir nicht sicher, warum ich nicht kirtans ex konnte. für mich arbeiten. Es schien auf leeren Feldern oder vielleicht auf Feldern mit nachgestellten Kommas zu versagen ...
Dieser scheint mit beiden fertig zu werden.
Ich habe den Parser-Code nicht geschrieben, sondern nur einen Wrapper um die Parser-Funktion, damit dies für eine Datei funktioniert. siehe Namensnennung
quelle
Regelmäßige Ausdrücke zur Rettung! Diese wenigen Codezeilen verarbeiten korrekt in Anführungszeichen gesetzte Felder mit eingebetteten Kommas, Anführungszeichen und Zeilenumbrüchen basierend auf dem RFC 4180-Standard.
Sie benötigen keinen Parser-Generator wie lex / yacc. Der reguläre Ausdruck behandelt RFC 4180 dank positivem Lookbehind, negativem Lookbehind und positivem Lookahead ordnungsgemäß.
Klonen / Herunterladen von Code unter https://github.com/peterthoeny/parse-csv-js
quelle
Ich habe dieses Javascript-Skript erstellt, um eine CSV in Zeichenfolge zu Array-Objekt zu analysieren. Ich finde es besser, die gesamte CSV in Zeilen, Felder aufzuteilen und entsprechend zu verarbeiten. Ich denke, dass es Ihnen leicht fällt, den Code an Ihre Bedürfnisse anzupassen.
Ich hoffe es hilft dir. Vielen Dank.
quelle
Warum nicht einfach .split (',') verwenden?
http://www.w3schools.com/jsref/jsref_split.asp
quelle