使用D3来parsing我的CSV

我试图用D3来parsing一个CSV excel文件到表中。 我知道代码“有效”,因为这在我老师的浏览器上工作(也是在线代码,所以它适用于其他人)。 但是当我尝试运行相同的代码时,浏览器中不会popup任何表格。 我已经尝试了Chrome和Edge。 我的老师在Chrome上运行它,它为他工作(他有Mac,我有Windows 10)。 无论如何,寻找一些援助,为什么这可能不工作。 考虑到这是行不通的,反正有人可以帮我parsingexcel表格的数据而不是这个?

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style> table { border-collapse: collapse; border: 2px black solid; font: 12px sans-serif; } td { border: 1px black solid; padding: 5px; } </style> </head> <body> <script src="https://d3js.org/d3.v4.min.js"></script> <!-- <script src="d3.min.js?v=3.2.8"></script>--> <script type="text/javascript"charset="utf-8"> d3.text("data.csv", function(data) { var parsedCSV = d3.csvParseRows(data); var container = d3.select("body") .append("table") .selectAll("tr") .data(parsedCSV).enter() .append("tr") .selectAll("td") .data(function(d) { return d; }).enter() .append("td") .text(function(d) { return d; }); }); </script> </body> </html> 

CSV文件:

 data.csv car name,miles/gallon,cylinders,displacement,horsepower,weight,acceleration,model year,origin "chevrolet chevelle malibu",18,8,307,130,3504,12,70,1 "buick skylark 320",15,8,350,165,3693,11.5,70,1 "plymouth satellite",18,8,318,150,3436,11,70,1 

我也刚刚尝试在本地下载.js文件,更改本地安装的JavaScript文件的代码,但它仍然无法正常工作。 所以这两种select都不适合我。 该网站是: d3js

编辑:所以我现在打开index.html到我的网页浏览器与更新后的代码作为评论如下。 没有任何东西popup,所以我Right-Clicked: Inspect和选项卡popup。 在右上angular,我注意到与2的x ,所以显然看起来像我有2个错误。 我点击它,我得到了以下内容:

XMLHttpRequest cannot load: file:///C:/Users/John/Desktop/table/data.csv Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

Uncaught TypeError: Cannot read property 'length' of null

都在d3.v4.min.js:6

我不能确定在其他浏览器中尝试的代码的相同性。 不过,我相信你已经做了一个改变,使用d3.js v4

  <script src="https://d3js.org/d3.v4.min.js"></script> 

这个名称空间的命名空间稍微不同于:

  <script src="d3.min.js?v=3.2.8"></script> 

在使用d3v4时,您应该使用:

 d3.csvParseRows 

而不是:

 d3.csv.parseRows 

https://github.com/d3/d3/blob/master/CHANGES.md

D3 4.0中的每个符号现在都共享一个平面命名空间,而不是D3 3.x的嵌套命名空间。 例如,d3.scale.linear现在是d3.scaleLinear,而d3.layout.treemap现在是d3.treemap。

  • 我假设你的csv文件没有在第一行包含“data.csv”文本,因为那样的话会是一个格式不正确的csv文件。