使用JS生成CSV会添加一个额外的空列

时间:2016-08-01 10:00:34

标签: javascript csv

我正在使用JS从数据数组生成CSV文件。

下载前的数据是:

var csv =
"Date,valA,valB,valC,valD,AVG
2016-07-01 12:00,393917,211,38534,640,9.78%,
2016-07-01 01:00,342278,171,38131,547,11.14%,
2016-07-01 02:00,265238,168,29395,547,11.08%,";

每一行最后都有一个换行符("\n")。

然后我在字符串的开头添加mime类型:

csv = 'data:text/csv;charset=utf-8,' + csv;

然后编码&下载:

data = encodeURI(csv);
link = document.createElement('a');
link.setAttribute('href', data);
link.setAttribute('download', filename);
link.click();

一切正常,但在最终文件中由于某种原因有一个空列。

我调查了this question,但它太详细了。我认为这里的解决方案非常简单。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

事实证明,每一行在换行符之前都有一个逗号(",")会导致额外的尾随列。

我所要做的就是确保我的线条以新的线条字符结束。

csv字符串应为:

var csv =
"Date,valA,valB,valC,valD,AVG
2016-07-01 12:00,393917,211,38534,640,9.78%
2016-07-01 01:00,342278,171,38131,547,11.14%
2016-07-01 02:00,265238,168,29395,547,11.08%";

(注意没有尾随逗号)。