2016-08-01 2 views
1

Я генерирую CSV-файл из массива данных с использованием JS.Создание CSV с JS добавляет лишний пустой столбец

Мои данные до загрузки заключается в следующем:

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").

Я затем добавить тип пантомимы в начале строки:

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

Оказывается, тот факт, что каждая строка имела запятую (",") непосредственно перед разрывом строки, вызвала дополнительный столбец.

Все, что мне нужно было сделать, это убедиться, что мои строки заканчиваются только новым символом линии.

Строка 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%"; 

(не заметить, не замыкающие запятые).

Смежные вопросы