javascript-从上传的csv数据创建dataTable列定义
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-从上传的csv数据创建dataTable列定义,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2255字,纯文字阅读大概需要4分钟。
内容图文
![javascript-从上传的csv数据创建dataTable列定义](/upload/InfoBanner/zyjiaocheng/664/44fef61e934b4916b1fe23db7c178b02.jpg)
M试图从上传的csv文件中创建数据表.我面临的唯一问题是定义表列标题.目前,我已经做到了这一点,手动定义标题.
var table = $('#example').DataTable({
columns: [{
"title": "Number",
"data": "Number"
}, {
"title": "Category",
"data": "Category"
}, {
"title": "Assignment group",
"data": "Assignment group"
}
]
});
并通过jQuery CSV传递CSV数据
var f = event.target.files[0];
if (f) {
var r = new FileReader();
r.onload = function(e) {
console.log("on load function");
var result = $.csv.toArrays(e.target.result);
table.rows.add($.csv.toObjects(e.target.result)).draw();
}
r.readAsText(f);
} else {
alert("Failed to load file");
}
这很好.我想直接从csv文件本身定义列标题.
试过了
var f = event.target.files[0];
if (f) {
var r = new FileReader();
r.onload = function(e) {
console.log("on load function");
var result = $.csv.toArrays(e.target.result); // This will give CSV rows
var csvHeader = result[0]; // This will give first CSV header
var option;
$.each( csvHeader, function( value ){
console.log(value)
// Now iterate each value to define Datatable column
option = // Define column which will create below column definition
/* columns: [{
"title": "Number",
"data": "Number"
}, {
"title": "Category",
"data": "Category"
}, {
"title": "Assignment group",
"data": "Assignment group"
}, {
"title": "Short description",
"data": "Short description"
},
{
"title": "Description",
"data": "Description"
}
]*/
});
var table = $('#example').DataTable({
//Define datatable passing column definition as option
});
table.rows.add($.csv.toObjects(e.target.result)).draw();
}
r.readAsText(f);
} else {
alert("Failed to load file");
}
提前致谢.
解决方法:
有什么理由使用FileReader而不是$.get或类似的东西?并非所有浏览器都支持FileReader,例如IE9和Opera mini.
无论如何-由于您读取了CSV文件,并且最终准备好将字符串数组添加到表中,因此无需在列中定义数据属性.实际上,仅需执行几个非常简单的步骤即可使用$.csv生成显示CSV的dataTable.以下代码采用格式正确的CSV并将其发布为dataTable:
$.get(<CSV FILE>, function(csv) {
var data = $.csv.toArrays(csv),
columns = [];
//create the columns object
data[0].forEach(function(col) {
columns.push({ title: col });
})
//remove the CSV header row for convenience
data.splice(0,1);
//create the dataTable
var table = $('#example').DataTable({
columns: columns
})
//insert rows
data.forEach(function(row) {
table.row.add(row).draw();
})
})
内容总结
以上是互联网集市为您收集整理的javascript-从上传的csv数据创建dataTable列定义全部内容,希望文章能够帮你解决javascript-从上传的csv数据创建dataTable列定义所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。