首页 > 解决方案 > 从 Json 导出到 CSV 不带引号?

问题描述

我知道 CSV 文件有引号等,但我的导出将是网络上传的某个导入,所以我需要使用 CSV 文件但没有引号

  downloadFile(data: any) {
    const replacer = (key, value) => value === null ? '' : value; // specify how you want to handle null values here
    const header = Object.keys(data[0]);
    let csv = data.map(row => header.map(fieldName => JSON.stringify(row[fieldName], replacer)).join(';'));
    csv.unshift(header.join(';'));
    let csvArray = csv.join('\r\n');

    var a = document.createElement('a');
    var blob = new Blob(['\ufeff',csvArray], {type: 'text/csv'}),
    url = window.URL.createObjectURL(blob);

    a.href = url;
    a.download = "myFile.csv";
    a.click();
    window.URL.revokeObjectURL(url);
    a.remove();
}

这是我的代码,一切正常,但我不知道它把这些引号放在哪里。

标签: javascript

解决方案


JSON 中的字符串需要用引号分隔,因此当您将每个标头字段转换为 JSON时,它们会被添加。

如果您想要纯字符串,请不要转换为 JSON!


几乎可以肯定,使用库来生成 CSV 而不是自己滚动会更好。


推荐阅读