HTML-Tabelle mit JavaScript (jQuery) als CSV exportieren
In diesem Beitrag findet ihr das jQuery-Script, mit dessen Hilfe HTML-Tabellen als CSV exportiert werden können.

Wenn man auf seiner Website umfangreiche tabellarische Daten abbildet, kann es sich anbieten diese zur Weiterverarbeitung als Download im CSV-Format bereitzustellen. In diesem Beitrag archivieren wir ein jQuery-Snippet für diesen Anwendungsfall. Sofern die Daten auf der Website als semantisch korrekte HTML <table>
vorliegen, kann der Inhalt der Tabelle per Klick als CSV heruntergeladen werden.
Schulungen von kulturbanause
Intensive Trainings mit hohem Praxisbezug.
HTML-Tabelle
Basis des Exports ist eine saubere HTML-Tabelle. Die Grundlage unseres Beispiels sieht daher wie folgt aus:
<table>
<tr>
<th>Feature 1</th>
<th>Feature 2</th>
<th>Feature 3</th>
</tr>
<tr>
<td>Wert 1</td>
<td>Wert 1</td>
<td>Wert 1</td>
</tr>
<tr>
<td>Wert 2</td>
<td>Wert 2</td>
<td>Wert 2</td>
</tr>
<tr>
<td>Wert 3</td>
<td>Wert 3</td>
<td>Wert 3</td>
</tr>
</table>
Unter der Tabelle binden wir einen Button ein, der die ID #export erhalten hat. Per Klick auf diesen Button wir die CSV-Datei erstellt und der Download gestartet.
<button id="export" class="btn" data-export="export">Export</button>
Script zur Erstellung der CSV-Datei
Um die Umwandlung der HTML-Tabelle in CSV, sowie den eigentlichen Export zu ermöglichen könnt ihr das folgende JavaScript (jQuery) verwenden.
$.prototype.kb_table_csv = function() {
var kb_tidy_content = function(text){
text = text.replace(/"/g, '""');
return '"'+text+'"';
};
$(this).each(function(){
var table = $(this);
var caption = $(this).find('caption').text();
var title = [];
var rows = [];
$(this).find('tr').each(function(){
var data = [];
$(this).find('th').each(function(){
var text = kb_tidy_content($(this).text());
title.push(text);
});
$(this).find('td').each(function(){
var text = kb_tidy_content($(this).text());
data.push(text);
});
data = data.join(",");
rows.push(data);
});
title = title.join(",");
rows = rows.join("\n");
var csv = title + rows;
var uri = 'data:text/csv;charset=utf-8,' + encodeURIComponent(csv);
var download_link = document.createElement('a');
download_link.href = uri;
var ts = new Date().getTime();
if(caption==""){
download_link.download = ts+".csv";
} else {
download_link.download = caption+"-"+ts+".csv";
}
document.body.appendChild(download_link);
download_link.click();
document.body.removeChild(download_link);
});
};
CSV-Export ausführen
Folgender jQuery-Code startet dann den Export. Per Klick auf ein Element mit der ID #export
wird die Tabelle ins CSV umgewandelt und exportiert.
$("#export").click(function(){
$("table").kb_table_csv();
});
Links / Quellen:
Feedback & Ergänzungen – 1 Kommentar
Kommentar zu dieser Seite
Website-Projekte mit kulturbanause
Wir wissen wovon wir reden. Wir realisieren komplette Projekte oder unterstützen punktuell in den Bereichen Design, Development, Strategy und Content.
Übersicht Kompetenzen →Schulungen von kulturbanause
Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.
Übersicht Schulungsthemen →
Kann man auch mehrer Tabellen auf einer Seite haben und das ganze mit IDs so machen, dass man dann immer die jeweilige Tabelle runterladen kann? So lädt er immer die „letzte“ Tabelle herunter.