我的 CSV 数据如下所示:
heading1,heading2,heading3,heading4,heading5
value1_1,value2_1,value3_1,value4_1,value5_1
value1_2,value2_2,value3_2,value4_2,value5_2
...
你如何读取这些数据并使用 JavaScript 转换成这样的数组?:
[
heading1: value1_1,
heading2: value2_1,
heading3: value3_1,
heading4: value4_1
heading5: value5_1
],[
heading1: value1_2,
heading2: value2_2,
heading3: value3_2,
heading4: value4_2,
heading5: value5_2
]
....
我已经尝试过这段代码,但没有运气!:
<script type="text/javascript">
var allText =[];
var allTextLines = [];
var Lines = [];
var txtFile = new XMLHttpRequest();
txtFile.open("GET", "file://d:/data.txt", true);
txtFile.onreadystatechange = function()
{
allText = txtFile.responseText;
allTextLines = allText.split(/\r\n|\n/);
};
document.write(allTextLines);
document.write(allText);
document.write(txtFile);
</script>
最佳答案
无需自己编写...
jQuery-CSV库有一个名为 $.csv.toObjects(csv)
的函数,它会自动进行映射。
注意:该库旨在处理 RFC 4180 的任何 CSV 数据。合规,包括大多数“简单”解决方案忽略的所有令人讨厌的边缘情况。
就像@Blazemonger 已经说过的那样,首先您需要添加换行符以使数据有效 CSV。
使用以下数据集:
heading1,heading2,heading3,heading4,heading5
value1_1,value2_1,value3_1,value4_1,value5_1
value1_2,value2_2,value3_2,value4_2,value5_2
使用代码:
var data = $.csv.toObjects(csv):
保存在“数据”中的输出将是:
[
{ heading1:"value1_1",heading2:"value2_1",heading3:"value3_1",heading4:"value4_1",heading5:"value5_1" }
{ heading1:"value1_2",heading2:"value2_2",heading3:"value3_2",heading4:"value4_2",heading5:"value5_2" }
]
注意:从技术上讲,您编写键值映射的方式是无效的 JavaScript。包含键值对的对象应该用括号括起来。
如果你想自己尝试一下,我建议你看看Basic Usage Demonstration在“toObjects()”选项卡下。
免责声明:我是 jQuery-CSV 的原作者。
更新:
已编辑以使用操作提供的数据集,并包含指向演示的链接,可在其中测试数据的有效性。
更新2:
由于 Google Code 关闭。 jquery-csv has moved to GitHub
关于javascript - 如何使用 JavaScript 从 *.CSV 文件中读取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7431268/