Рад, что кто-то ответил вам. Я просто разработаю мой предыдущий ответ на ваш предыдущий вопрос просто на практике, хорошо?
Итак, главное, что произошло с последним ответом, был формат печати, так что все, что нам нужно сделать, это настроить это. Например, если вам нужна строка с заголовками, вы должны зациклить и напечатать ее. Как это:
// just adding a loop to headers:
html += '<tr>\r\n';
for(var item in header) {
html += '<td>' + header[item] + '</td>\r\n';
}
html += '</tr>\r\n';
Вот и все. Все значения заголовка будут считаны как ячейки таблицы в определенной строке таблицы.
Второй шаг - удалить информацию заголовка из других ячеек:
for(var row in rows) {
html += '<tr>\r\n';
for(var item in rows[row]) {
html += '<td>' + rows[row][item].join(agregator) + '</td>\r\n';
}
html += '</tr>\r\n';
}
Окончательный код, наконец
var separator = ",",
agregator = ":";
function generateTable(lines) {
if (typeof(lines) === 'undefined' || lines.length == 0) {
return '';
}
var header = lines[0].split(separator);
var html = '';
var rows = [];
// mapping
for (var row in lines) {
if(row == 0) {
continue;
}
var cols = lines[row].split(separator),
values = {};
for (var col in cols) {
var item = header[col] ? header[col] : header[header.length-1];
if(values[item]) {
values[item].push(cols[col]);
} else {
values[item] = [cols[col]];
}
}
rows.push(values);
}
// printing
// just adding a loop to headers:
html += '<tr>\r\n';
for(var item in header) {
html += '<td>' + header[item] + '</td>\r\n';
}
html += '</tr>\r\n';
for(var row in rows) {
html += '<tr>\r\n';
for(var item in rows[row]) {
html += '<td>' + rows[row][item].join(agregator) + '</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)));
}
});
Я взял ваш JSFiddle для тестирования здесь: http://jsfiddle.net/xpvt214o/693555/ просто изменив часть $ .ajax. Я думаю, что это будет работать с любым файлом CSV.