2017-10-23 9 views
0

Ich habe hier viel in Stack Overflow und in Google gesucht, aber leider keine Antwort.Speichern des Ergebnisses einer Funktion mit for-Schleife als CSV-Datei in JavaScript

ich einen Code in JS geschrieben, es gibt mir eine solche „erwartbaren und korrekt“ Ergebnis:

W,52.xxxxx,10.1 
W,52.xxxxx,10.2 
W,52.xxxxx,10.3 
W,52.yyyyy,10.1 
W,52.yyyyy,10.2 
W,52.yyyyy,10.3 

Das Problem ist, dass es eine zu große Liste dieser Zeilen ist, ich kann es nicht kopieren vollständig in Android, so würde ich stattdessen diese Liste als cSV-Datei zu speichern, es über den Befehl

"document.write" 

ich änderte meinen Code mit Hilfe anderer Völker Codes auf der Webseite angezeigt werden, aber es funktioniert nicht. Ich werde das Wort „undefiniert“ anstelle der Liste der Daten, die in der CSV-Datei :(

-Code wäre, ist hier:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Page Title</title> 
    </head> 
    <body> 

    </body> 
    <script> 
     function convertTo() 
{ 

    var lon,lat; 

    for(lat = 52 + (1/3600) ; lat <= 52 + (3/3600) ; lat=lat+(1/3600)) 

    { 

     for(lon = 9 + (1/3600) ; lon<= 9 + (4/3600) ; lon=lon+(1/3600)) 
      { 

     document.write("W,"+lat+","+lon+"<br>") 

      } 
    } 

}; 

var CSV = convertTo(); 

window.URL = window.webkitURL || window.URL; 

var contentType = 'text/csv'; 

var csvFile = new Blob([CSV], {type: contentType}); 

var a = document.createElement('a'); 

a.download = 'my.csv'; 

a.href = window.URL.createObjectURL(csvFile); 

a.textContent = 'Download as CSV'; 

a.dataset.downloadurl = [contentType, 

a.download, a.href].join(':'); 

document.body.appendChild(a); 


    </script> 
</html> 

Jede Hilfe bitte

Hinweis: Ich bin Anfänger mit JS

Edit: Hier habe ich den Code der Export in csv die ich hinzugefügt und geändert mit meinem Code-Datei:

Lee Kowalkowski's answer

+0

erste Problem ist, Sie auf Dokument schreiben verwenden versuchen in CSV-Variable zu erhalten, sollten Sie Variable verwenden, anstatt von document.write ... und benutze return –

+0

@Ferhat, also sollte ich document.write ("W", + lat + "," + lon + "
") löschen und dann return ("W," + lat + "," +) schreiben lon + "
")? !! – Khaled

+0

var lon, lat, str str + = ...... Ende der Funktion zurück str –

Antwort

0

Hallo Leider können Sie unter Code arbeitet auch Code in jsfiddle

Script

function convertTo() 
{ 
var lon,lat; 
var str =''; 
for(lat = 52 + (1/3600) ; lat <= 52 + (3/3600) ; lat=lat+(1/3600)) 
{ 
    for(lon = 9 + (1/3600) ; lon<= 9 + (4/3600) ; lon=lon+(1/3600)) 
     { 
    str+="W;"+lat+";"+lon+"\n"; 
     } 
} 
return str; 
}; 
var CSV = convertTo(); 
window.URL = window.webkitURL || window.URL; 
var contentType = 'text/csv'; 
var csvFile = new Blob([CSV], {type: contentType}); 
var a = document.createElement('a'); 
a.download = 'my.csv'; 
a.href = window.URL.createObjectURL(csvFile); 
a.textContent = 'Download as CSV'; 
a.dataset.downloadurl = [contentType, 
a.download, a.href].join(':'); 
document.body.appendChild(a); 
+0

vielen Dank, könnten Sie mir helfen, mehr? !! Ich habe meinen Code so geändert, dass ich meine Werte direkt in HTML eingeben kann, aber der Code funktioniert nicht !!! Warum?!! Globale Variablen müssen aus der Funktion gelesen werden !! Bitte gibt es meinen Code: http://jsfiddle.net/4473vjbw/ – Khaled

+0

Diese "bestätigen" -Taste ist optional, ich lege es nur um die eingegebenen Werte zu überprüfen – Khaled

+0

Ja, aber ich bin nicht verfügbar jetzt können Sie Ihre Frage stellen, wenn ich bin verfügbar dann kann dir helfen –

Verwandte Themen