在给定 javascript 中的表头的情况下生成 TSV 文件

Generate TSV file given the table headers in javascript

本文关键字:TSV 文件 情况下 表头 javascript      更新时间:2023-09-26

鉴于我有一个要放入文件中的标头数组,是否可以使用 javascript 在浏览器端生成 TSV 文件?

例如,在我的JavaScript中,我有:

var fields = ["field1", "field2", "field3", "field4", "field5"];

我可以创建一个在第一行包含以下内容的 TSV 文件吗

field1      field2      field3      field4      field5

并将其另存为"fields.tsv"?

可以将Array.prototype.join()与参数一起使用 't't't来联接数组值fields单个或多个tab字符;使用 data URIMIME类型设置为 text/tab-separated-values 连接数组 连接,将window.location.hrefwindow.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;
};

感谢所有的帮助!