在创建 csv 文件时,Blob 在打字稿中附加逗号
Posted
技术标签:
【中文标题】在创建 csv 文件时,Blob 在打字稿中附加逗号【英文标题】:Blob is appending commas in typescript, when creating csv file 【发布时间】:2019-02-25 15:33:51 【问题描述】:我正在尝试从 Angular 6 Web 应用程序导出数据。
我有一个字符串数组,其中每个字符串都是一个 csv 行,格式如下:
var csvLines = ['val1,val2\n', 'val3,val4\n'...];
将所需的所有数据添加到数组后,我将其写入控制台:
这看起来不错...
现在我不想将其转换为 blob 并将其下载为 .CSV 文件。
下载没问题,但是输出的格式不对。
当我运行以下代码时:
const blob = new Blob([csvLines], type: 'text/csv;encoding:utf-8');
const reader = new FileReader();
reader.onload = () =>
console.log(reader.result);
;
reader.readAsText(blob);
我得到了这个输出。
注意除了第一行之外的每一行附加的逗号 - 这弄乱了我的 csv。
谁能告诉我为什么会这样,也许如何禁用逗号附加?
我已尝试使用 text/plain
作为 mimetype 且不使用编码创建 Blob,但仍附加逗号。
【问题讨论】:
Convert javascript variable value to csv file的可能重复 【参考方案1】:因为您将csvLines
作为[csvLines]
传递给new Blob(..)
,所以您传递的是一个包含数组的数组。似乎子数组是使用逗号连接的。
只需使用new Blob(csvLines, type: 'text/csv;encoding:utf-8' );
就可以了。
const csvLines = ['val1,val2\n', 'val3,val4\n'];
const blob = new Blob(csvLines, type: 'text/csv;encoding:utf-8' );
const reader = new FileReader();
reader.onload = () =>
console.log(reader.result);
;
reader.readAsText(blob);
【讨论】:
以上是关于在创建 csv 文件时,Blob 在打字稿中附加逗号的主要内容,如果未能解决你的问题,请参考以下文章