我正在尝试从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);
我得到这个输出。
谁能告诉我为什么会这样,也许怎么禁用逗号附加?
我尝试用text/plain
作为mimetype创建Blob,并且不使用编码,但是仍然附加了逗号。
答案 0 :(得分: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);