解析CSV数据的JavaScript代码

解析CSV数据的JavaScript代码

有人知道我在哪里可以找到一些javascript代码来解析CSV数据吗?



catspeake
浏览 1382回答 3
3回答

qq_花开花谢_0

它是一个jQuery插件,用于将CSV解析为Javascript数据的端到端解决方案。它处理在RFC 4180,还有一些弹出的Excel/GoogleSpreadsheed导出(即主要涉及空值),而规范缺少这些导出。例子:曲目,艺术家,专辑,年份“危险”,“Busta节奏”,“灾难降临时”,1997年// calling thismusic = $.csv.toArrays(csv)// outputs...[   ["track","artist","album","year"],   ["Dangerous","Busta Rhymes","When Disaster Strikes","1997"]]console.log(music[1][2]) // outputs: 'When Disaster Strikes'最新情况:哦,是的,我也应该提到它是完全可配置的。music = $.csv.toArrays(csv, {   delimiter:"'", // sets a custom value delimiter character   separator:';', // sets a custom field separator character});更新2:它现在也适用于Node.js上的jQuery。因此,您可以选择使用相同的lib进行客户端或服务器端解析。

慕运维8079593

我有一个实施作为电子表格项目的一部分。这段代码还没有经过彻底的测试,但是欢迎任何人使用它。但是,正如一些答案所指出的那样,如果您实际拥有的话,您的实现可能要简单得多。DSV或TSV文件,因为它们不允许在值中使用记录和字段分隔符。另一方面,csv实际上可以在字段中有逗号和换行符,这破坏了大多数正则表达式和基于拆分的方法。var CSV = {parse: function(csv, reviver) {     reviver = reviver || function(r, c, v) { return v; };     var chars = csv.split(''), c = 0, cc = chars.length, start, end, table = [], row;     while (c < cc) {         table.push(row = []);         while (c < cc && '\r' !== chars[c] && '\n' !== chars[c]) {             start = end = c;             if ('"' === chars[c]){                 start = end = ++c;                 while (c < cc) {                     if ('"' === chars[c]) {                         if ('"' !== chars[c+1]) { break; }                         else { chars[++c] = ''; } // unescape ""                     }                     end = ++c;                 }                 if ('"' === chars[c]) { ++c; }                 while (c < cc && '\r' !== chars[c] && '\n' !== chars[c] && ',' !== chars[c]) { ++c; }             } else {                 while (c < cc && '\r' !== chars[c] && '\n' !== chars[c] && ',' !== chars[c]) { end = ++c; }             }             row.push(reviver(table.length-1, row.length, chars.slice(start, end).join('')));             if (',' === chars[c]) { ++c; }         }         if ('\r' === chars[c]) { ++c; }         if ('\n' === chars[c]) { ++c; }     }     return table;},stringify: function(table, replacer) {     replacer = replacer || function(r, c, v) { return v; };     var csv = '', c, cc, r, rr = table.length, cell;     for (r = 0; r < rr; ++r) {         if (r) { csv += '\r\n'; }         for (c = 0, cc = table[r].length; c < cc; ++c) {             if (c) { csv += ','; }             cell = replacer(r, c, table[r][c]);             if (/[,\r\n"]/.test(cell)) { cell = '"' + cell.replace(/"/g, '""') + '"'; }             csv += (cell || 0 === cell) ? cell : '';         }     }     return csv;}};
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript