3

我正在尝试做一些我认为相当简单但似乎不起作用的事情。我在与我的脚本文件相同的目录中有一个 .csv 文件。我想使用 .csv 文件中的数据创建一个对象或数组。如何使用 javascript 访问本地文件?

抱歉缺少代码,但我什至不知道该走哪条路线;我已经尝试过 .get 和 ajax 以及这个插件,但我只是不知道我在做什么。有人可以给我一个清楚的例子来说明如何加载文件并将其打印在 div 中吗?

4

2 回答 2

2

为了模拟静态文件服务器,您可以在命令行上使用 python 运行 http 服务器。这是使用 ajax 请求所必需的。

python -m SimpleHTTPServer  

或者如果你有 python 3

python -m http.server

现在有两个部分可以将该文件获取到网页。1)发出ajax请求,2)解析csv。有许多不同的库可以实现 ajax 请求,但在这种情况下,您可能会发现结合两者的最简单的开箱即用解决方案是d3.js。

d3.csv("filename.csv", function(err, data) {

    // csv is parsed into an array of objects, as data

});

当然,这仅在您从 localhost 加载页面时才有效。

编辑:

确保从 index.html 文件的位置运行 http 服务器。那么你在d3.csv函数中提出的请求是相对于索引的。最后,数据仅在回调中可用,任何错误消息(或 null)都将放在 err 参数中。

Project
|
+-- index.html
|    
+-- data
|  |  
|  \-- dataset.csv

然后 index.html 中的代码看起来像

d3.csv("data/dataset.csv", function(err, data) {

    if (err) console.log(err) // error messages

    console.log(data);   // should contain the parsed csv
});
于 2015-11-01T22:46:08.227 回答
1

PapaParse()在这里做得很好,例如,这将为您完成工作:

Papa.parse(file, {
    complete: function(results) {
        console.log("Finished:", results.data);
    }
});

DEMO

于 2015-11-01T22:37:51.447 回答