jquery - JQuery-csv 不解析所有值
问题描述
我jquery.csv
用来解析 csv 文件并以表格格式显示数据。
我的 csv 文件数据:test.csv
header1, header2, header3, header4
value1, value2, value3, value4
value1, value2, value3, value4.1,value4.2,value4.3
value1, value2, value3, value4
我的代码:index.html
var data;
$.ajax({
type: "GET",
url: "test.csv",
dataType: "text",
success: function(response) {
data = $.csv.toObjects(reponse);
// generating the table for user view
generateTable(data);
var html = generateTable(data);
$('#result').html(html);
}
});
function generateTable(data) {
var html = '';
if (typeof(data[0]) === 'undefined') {
return null;
}
if (data[0].constructor === Object) {
for (var row in data) {
html += '<tr>\r\n';
for (var item in data[row]) {
html += '<td>' + item + ':' + data[row][item] + '</td>\r\n';
}
html += '</tr>\r\n';
}
}
return html;
}
该代码不会产生错误,它在表格中显示我打印的是每个标题一个值,但我想知道如何获得每个标题的多个值?就像header4
有几个值一样,我希望单元格中的所有值都用于 header4。或者,如果您能提出任何更好的解析此类数据的方法,我将不胜感激。谢谢!
JSFiddle
解决方案
所以...现在我明白了你的问题,呵呵。开始了:
function generateTable(lines) {
if (typeof(lines) === 'undefined' || lines.length == 0) {
return '';
}
var header = lines[0].split(',');
var html = '';
for (var row in lines) {
if(row == 0) {
continue;
}
html += '<tr>\r\n';
var cols = lines[row].split(',');
for (var col in cols) {
var item = header[col] ? header[col] : header[header.length-1];
html += '<td>' + item + ':' + cols[col] + '</td>\r\n';
}
html += '</tr>\r\n';
}
return html;
}
$.ajax({
type: "GET",
url: "test.csv",
dataType: "text",
success: function(response) {
$('#result').html(generateTable($.csv.parsers.splitLines(response)));
}
});
你不能只使用默认解析器做你想做的事。所以你应该用助手创建你自己的解析器$.csv.parsers.splitLines
(你可以在那里阅读)。因此,您可以对溢出案例的这些值做任何您想做的事情。在您的情况下,您想使用最后一个“列标题”作为这些值的标题,对吗?这发生在这条线上:
var item = header[col] ? header[col] : header[header.length-1];
如果该列存在于标题定义中,它将调用标题名称。如果没有,它将调用最后一个标题名称。而已?
推荐阅读
- tsql - T-SQL:如何查找和替换字符串模式
- c# - Rest API:为 POST 方法和 ID 集合设计 URL 和正文
- kotlin - 无法从路径中检索查询参数:Vertx 中的“xxx/:id?version=:version”
- python - dd.read_csv - FileNotFoundError: [WinError 3] - UNC 路径
- parameters - 如何获取参数值并将其插入查询 SAP ABAP
- linux - 如何将 linux 命令作为命令行参数传递给 bash 执行?
- javascript - 如何扩展 GraphQL 调用的上下文对象?
- javascript - 在 JavaScript 或 Typescript 中按 ID 搜索和计算两个数组中的匹配项
- c# - 如何在转换为 int32 时使类变量等于我的文本框值
- ios - Url_Launcher 在 iOS 上打开任何地图应用程序