鉴于我有一个要放入文件中的标头数组,是否可以使用 javascript 在浏览器端生成 TSV 文件?
例如,在我的JavaScript中,我有:
var fields = ["field1", "field2", "field3", "field4", "field5"];
我可以创建一个在第一行包含以下内容的 TSV 文件吗
field1 field2 field3 field4 field5
并将其另存为"fields.tsv"?
可以将Array.prototype.join()
与参数一起使用 t
或tt
来联接数组值fields
单个或多个tab
字符;使用 data URI
将MIME
类型设置为 text/tab-separated-values
连接数组 连接,将window.location.href
或window.open()
第一个参数设置为data URI
以启动Save File
对话框。
编辑, 更新
如 @Eugene 所述,将联接fileds
数组传递到encodeURIComponent()
以保留制表符
var fields = ["field1", "field2", "field3", "field4", "field5"];
var tsv = fields.join("t");
window.location.href = "data:text/tab-separated-values," + encodeURIComponent(tsv);
波兰兹罗提 http://plnkr.co/edit/ehfbwS4UWdLiM350rx1i?p=preview
根据这篇文章的建议和第二个答案,我来到了这个 plunkr 解决方案。 :)
function createFile () {
var fields = ["field1", "field2", "field3", "field4", "field5"];
var tsv = fields.join("t");
var generatedFile = makeTextFile(tsv);
var link = document.getElementById('downloadLink');
link.href = generatedFile;
};
感谢所有的帮助!