javascript - 如何使用 JavaScript 从 *.CSV 文件中读取数据?

标签 javascript jquery

我的 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/

相关文章:

javascript - RequireJS shim 导出有什么用?

javascript - 为什么不能将页眉背景设置为十六进制值?

javascript - 在 javascript 中,将自定义事件附加到文档本身是不好的做法吗?

javascript - 在 AJAX 调用中使用 FOR 循环

javascript - removeClass 不是 AngularJS 指令中的函数

javascript - 如果滚动超过 bg 图像大小,则视差停止背景图像 pos 更改

javascript - 使用 Protractor 使用部分文本来控制重定向

jquery:如何更改循环脚本的主题标签/地址栏名称

jquery - 在外部单击时隐藏按钮

javascript - jQuery AJAX 和 PHP 不获取数据值