将JavaScript变量值转换为csv文件

时间:2013-06-14 07:36:23

标签: javascript jquery html

我的.js文件中有一个逗号分隔的变量,例如:

var out='';
out+="1,val1,val2,val3,val4\n";
out+="2,val1,val2,val3,val4\n";
out+="3,val1,val2,val3,val4\n";

我使用document.write(out);在浏览器中显示此值 我希望out变量可以作为.csv文件下载。

根据存储在变量中的数据,有没有办法在JavaScript中创建csv文件及其关联的下载链接?

jsFiddle

2 个答案:

答案 0 :(得分:32)

取决于浏览器支持,但新浏览器的效果非常好:http://jsfiddle.net/3fMeL/2/

var CSV = [
    '"1","val1","val2","val3","val4"',
    '"2","val1","val2","val3","val4"',
    '"3","val1","val2","val3","val4"'
  ].join('\n');

window.URL = window.webkitURL || window.URL;

var contentType = 'text/csv';

var csvFile = new Blob([CSV], {type: contentType});

var a = document.createElement('a');
a.download = 'my.csv';
a.href = window.URL.createObjectURL(csvFile);
a.textContent = 'Download CSV';

a.dataset.downloadurl = [contentType, a.download, a.href].join(':');

document.body.appendChild(a);

所以第一项是Blob对象,这会创建可以下载的对象。 https://developer.mozilla.org/en-US/docs/Web/API/Blobhttp://caniuse.com/#search=blob

下一部分是链接的下载属性,它通知浏览器下载CSV文件而不是在浏览器窗口中打开它。 (http://caniuse.com/#feat=download

答案 1 :(得分:0)

客户端的输出文件有jquery插件,没有服务器端交互,

https://github.com/dcneiner/Downloadify