2016-08-01 12 views
1

Ich erstelle eine CSV-Datei aus einem Array von Daten mithilfe von JS.Das Generieren von CSV mit JS fügt eine zusätzliche leere Spalte hinzu

Meine Daten vor dem Download ist dies:

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%,"; 

Jede Zeile hat einen Zeilenumbruch Zeichen am Ende ("\n").

ich dann fügen Sie den Mime-Typ am Anfang des Strings:

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

und dann & herunterladen kodieren:

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

Alles funktioniert gut, aber in der letzten Datei dort ist aus irgendeinem Grund eine leere Spalte.

Ich habe in this question untersucht, aber es ist viel zu detailliert. Ich denke, die Lösung hier könnte sehr einfach sein.

Was mache ich hier falsch?

Antwort

1

Es stellt sich heraus, dass die Tatsache, dass jede Zeile kurz vor dem Zeilenumbruch ein Komma (",") hatte, die zusätzliche hintere Spalte verursachte.

Alles, was ich tun musste, ist sicherzustellen, dass meine Zeilen nur mit einem neuen Zeilenzeichen enden.

Das sollte csv String sein:

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%"; 

(bemerken keine Hinter Komma).

Verwandte Themen