将csv文件加载到d3而不发送到服务器
问题描述:
有没有办法将csv数据加载到d3.csv而不发送到服务器?我试图使用dataURI,但它不工作...将csv文件加载到d3而不发送到服务器
我有一种形式,用户可以从他们的计算机中选择一个csv文件。
<input type='file' onchange="readURL(this);"/>
这导致readURL函数从该文件创建dataURI。
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#file_url')
.attr('data-file-url', f.target.result);
};
reader.readAsDataURL(input.files[0]);
}
}
然后,我有一个脚本来窃取dataURI从#file_url DIV并输入到d3.csv:
var address = $('#file_url').attr('data-file-url');
d3.csv(address,function(csv){
do stuff with that csv
}
问题是我得到一个跨域错误。
您是否尝试将该文件读入字符串并使用['d3.csv.parse()']进行解析(https://github.com/mbostock/d3/wiki/CSV#wiki-parse )? –
立即尝试。将csv文件解析为字符串的正确方法是什么?现在JavaScript只读取文件的第一行作为字符串,其余的则触发错误。我认为这是一个多线问题。 – bumpkin
您应该按原样阅读文件,不进行任何转换。如果你使用'd3.csv.parse()'不成功,你可以尝试使用'parseRows()'。 –