Sie können dies in reinem JavaScript tun. Sie müssen Ihre Daten in das richtige CSV-Format parsen, wie folgt (unter der Annahme, dass Sie ein Array von Arrays für Ihre Daten verwenden, wie Sie es in der Frage beschrieben haben):
const rows = [
["name1", "city1", "weitere Infos"],
["name2", "city2", "mehr Infos"]
];
let csvContent = "data:text/csv;charset=utf-8,";
rows.forEach(function(rowArray) {
let row = rowArray.join(",");
csvContent += row + "\r\n";
});
oder auf dem kürzeren Weg (unter Verwendung von Pfeilfunktionen):
const rows = [
["name1", "city1", "weitere Infos"],
["name2", "city2", "mehr Infos"]
];
let csvContent = "data:text/csv;charset=utf-8,"
+ rows.map(e => e.join(",")).join("\n");
Dann können Sie die JavaScript-Funktionen window.open
und encodeURI
verwenden, um die CSV-Datei wie folgt herunterzuladen:
var encodedUri = encodeURI(csvContent);
window.open(encodedUri);
Bearbeiten:
Wenn Sie Ihrer Datei einen bestimmten Namen geben möchten, müssen Sie dies etwas anders tun, da dies nicht unterstützt wird, wenn Sie auf eine Daten-URI mit der Methode window.open
zugreifen. Um dies zu erreichen, können Sie ein verstecktes DOM-Element erstellen und sein download
-Attribut wie folgt setzen:
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "meine_daten.csv");
document.body.appendChild(link); // Erforderlich für FF
link.click(); // Dadurch wird die Datendatei mit dem Namen "meine_daten.csv" heruntergeladen.