Direkt zum Tool
ViewCSV
Kein Datei-Upload

CSV in eine HTML-Tabelle umwandeln

orders.csv· BEISPIELDATEN15 Zeilen · 8 Spalten
Ausgabe
Rahmen und rechtsbündige Zahlen; bei „Nur Tabelle“ werden stattdessen Klassennamen gesetzt.
<table class="csv-table">
  <thead>
    <tr>
      <th scope="col">order_id</th>
      <th scope="col">customer</th>
      <th scope="col">city</th>
      <th scope="col">product</th>
      <th scope="col">quantity</th>
      <th scope="col">unit_price</th>
      <th scope="col">order_date</th>
      <th scope="col">status</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td dir="auto">001041</td>
      <td dir="auto">Laura Koch</td>
      <td dir="auto">Leipzig</td>
      <td dir="auto">Monitor 27&quot;</td>
      <td class="num" dir="auto">4</td>
      <td class="num" dir="auto">180.60</td>
      <td dir="auto">2026-01-15</td>
      <td dir="auto">shipped</td>
    </tr>
    <tr>
      <td dir="auto">001042</td>
      <td dir="auto">Mia Müller</td>
      <td dir="auto">Köln</td>
      <td dir="auto">Coffee beans 1kg</td>
      <td class="num" dir="auto">3</td>
      <td class="num" dir="auto">156.81</td>
      <td dir="auto">2026-02-26</td>
      <td dir="auto">refunded</td>
    </tr>
    <tr>
      <td dir="auto">001043</td>
      <td dir="auto">Anna Fischer</td>
      <td dir="auto">Leipzig</td>
      <td dir="auto">Notebook A5</td>
      <td class="num" dir="auto">1</td>
      <td class="num" dir="auto">229.89</td>
      <td dir="auto">2026-03-17</td>
      <td dir="auto">refunded</td>
    </tr>
    <tr>
      <td dir="auto">001044</td>
      <td dir="auto">Jonas Wagner</td>
      <td dir="auto">Berlin</td>
      <td dir="auto">Notebook A5</td>
      <td class="num" dir="auto">9</td>
      <td class="num" dir="auto">80.03</td>
      <td dir="auto">2026-04-23</td>
      <td dir="auto">paid</td>
    </tr>
    <tr>
      <td dir="auto">001045</td>
      <td dir="auto">Anna Koch</td>
      <td dir="auto">Dresden</td>
      <td dir="auto">Monitor 27&quot;</td>
      <td class="num" dir="auto">5</td>
      <td class="num" dir="auto"></td>
      <td dir="auto">2026-05-24</td>
      <td dir="auto">pending</td>
    </tr>
    <tr>
      <td dir="auto">001046</td>
      <td dir="auto">Felix Becker</td>
      <td dir="auto">Frankfurt am Main</td>
      <td dir="auto">Coffee beans 1kg</td>
      <td class="num" dir="auto">5</td>
      <td class="num" dir="auto">93.26</td>
      <td dir="auto">2026-06-08</td>
      <td dir="auto">refunded</td>
    </tr>
    <tr>
      <td dir="auto">001047</td>
      <td dir="auto"> Lena Koch </td>
      <td dir="auto">München</td>
      <td dir="auto">Coffee beans 1kg</td>
      <td class="num" dir="auto">3</td>
      <td class="num" dir="auto">102.06</td>
      <td dir="auto">2026-07-26</td>
      <td dir="auto">pending</td>
    </tr>
    <tr>
      <td dir="auto">001048</td>
      <td dir="auto">Sophie Schmidt</td>
      <td dir="auto">Frankfurt am Main</td>
      <td dir="auto">Desk lamp</td>
      <td class="num" dir="auto">1</td>
      <td class="num" dir="auto">215.25</td>
      <td dir="auto">2026-08-03</td>
      <td dir="auto">paid</td>
    </tr>
    <tr>
      <td dir="auto">001049</td>
      <td dir="auto">Leon Müller</td>
      <td dir="auto">Frankfurt am Main</td>
      <td dir="auto">USB-C cable</td>
      <td class="num" dir="auto">6</td>
      <td class="num" dir="auto">89.20</td>
      <td dir="auto">2026-09-03</td>
      <td dir="auto">paid</td>
    </tr>
    <tr>
      <td dir="auto">001050</td>
      <td dir="auto">Leon Meyer</td>
      <td dir="auto">Berlin</td>
      <td dir="auto">Notebook A5</td>
      <td class="num" dir="auto">1</td>
      <td class="num" dir="auto">101.11</td>
      <td dir="auto">2026-01-10</td>
      <td dir="auto">refunded</td>
    </tr>
    <tr>
      <td dir="auto">001051</td>
      <td dir="auto">Leon Bauer</td>
      <td dir="auto">Frankfurt am Main</td>
      <td dir="auto">Notebook A5</td>
      <td class="num" dir="auto">9</td>
      <td class="num" dir="auto">142.33</td>
      <td dir="auto">2026-02-01</td>
      <td dir="auto">refunded</td>
    </tr>
    <tr>
      <td dir="auto">001052</td>
      <td dir="auto">Felix Schäfer</td>
      <td dir="auto">Hamburg</td>
      <td dir="auto">Monitor 27&quot;</td>
      <td class="num" dir="auto">4</td>
      <td class="num" dir="auto">161.36</td>
      <td dir="auto">2026-03-24</td>
      <td dir="auto">shipped</td>
    </tr>
    <tr>
      <td dir="auto">001053</td>
      <td dir="auto">Max Wagner</td>
      <td dir="auto">Hamburg</td>
      <td dir="auto">Monitor 27&quot;</td>
      <td class="num" dir="auto">1</td>
      <td class="num" dir="auto">184.33</td>
      <td dir="auto">2026-04-13</td>
      <td dir="auto">paid</td>
    </tr>
    <tr>
      <td dir="auto">001054</td>
      <td dir="auto">Jonas Müller</td>
      <td dir="auto">Hamburg</td>
      <td dir="auto">Desk lamp</td>
      <td class="num" dir="auto">8</td>
      <td class="num" dir="auto">205.98</td>
      <td dir="auto">2026-05-06</td>
      <td dir="auto">pending</td>
    </tr>
    <tr>
      <td dir="auto">001043</td>
      <td dir="auto">Anna Fischer</td>
      <td dir="auto">Leipzig</td>
      <td dir="auto">Notebook A5</td>
      <td class="num" dir="auto">1</td>
      <td class="num" dir="auto">229.89</td>
      <td dir="auto">2026-03-17</td>
      <td dir="auto">refunded</td>
    </tr>
  </tbody>
</table>

15 Zeilen · 1 Datei

Öffnen Sie eine CSV-Datei oder fügen Sie sie ein, und Sie erhalten eine <table> mit einem <thead> aus <th scope="col">-Überschriften und einem <tr> pro Zeile – oder eine vollständige HTML-Seite, die Sie direkt öffnen können. Jeder Wert wird HTML-maskiert: <script> oder & in Ihren Daten erscheint als Text und wird nie zu Markup. Die Datei wird in Ihrem Browser umgewandelt und nie hochgeladen.

So wandeln Sie CSV in HTML um

  1. Wählen Sie Datei öffnen, ziehen Sie eine .csv-, .tsv- oder .txt-Datei auf das Werkzeug, oder wählen Sie Einfügen. Sehen die Spalten falsch aus, passen Sie Trennzeichen oder Codierung unter Importeinstellungen an.
  2. Wählen Sie unter Ausgabe entweder Nur Tabelle, um das Markup in eine bestehende Seite oder ein CMS einzufügen, oder Vollständige HTML-Seite für eine eigenständige Datei.
  3. Ergänzen Sie bei Bedarf eine Beschriftung (optional), entscheiden Sie über Gestaltung und Zeilenumbrüche, und wählen Sie dann Kopieren oder „HTML herunterladen“.

Für eine README-Datei oder ein Wiki lässt sich eine Markdown-Tabelle meist leichter bearbeiten; für eine druckbare Datei nutzen Sie CSV in PDF.

Was die einzelnen Optionen bewirken

Nur TabelleDie Standardeinstellung. Nur das Element <table>, bereit zum Einfügen in eine Seite, eine E-Mail-Vorlage oder einen HTML-Block im CMS.
Vollständige HTML-SeiteErgänzt <!doctype html>, <html lang="en"> (auf dieser deutschen Seite mit lang="de"), <meta charset="utf-8"> und einen <title> (die Beschriftung oder ohne ihn Table), sodass sich die Datei in jedem Browser korrekt öffnet.
Beschriftung (optional)Schreibt ein <caption> als erstes Kindelement der Tabelle: den barrierefreien Namen, den Screenreader für die Tabelle ansagen.
Einfache Gestaltung hinzufügenStandardmäßig an. Auf einer vollständigen Seite wird ein kleines Stylesheet eingebettet: Rahmen, eine schattierte Kopfzeile und rechtsbündige Zahlen. Bei Nur Tabelle erhält stattdessen die Tabelle class="csv-table" und jede Zahlenzelle class="num", damit Ihr eigenes CSS über das Aussehen entscheidet.
Zeilenumbrüche in Zellen anzeigenStandardmäßig an. Ein Zeilenumbruch in einem Wert wird zu <br>. Ist die Option aus, bleibt der Umbruch im Quelltext, wo Browser ihn als Leerzeichen anzeigen.

Wie schwierige Daten behandelt werden

  • &, <, >, " und ' werden in jeder Zelle, Überschrift und in der Beschriftung als &amp;, &lt;, &gt;, &quot; und &#39; geschrieben. Tags in Ihren Daten erscheinen als Text – vorhandenes HTML in der CSV-Datei wird also auch nicht dargestellt.
  • Jede Zelle hat dir="auto", sodass arabische oder hebräische Werte auch innerhalb einer linksläufigen Seite von rechts nach links angezeigt werden.
  • Eine Spalte gilt nur dann als numerisch, wenn jeder nicht leere Wert eine einfache Zahl ist; eine ID-Spalte wie 0042 bleibt Text und wird nicht rechtsbündig ausgerichtet. Die Werte selbst werden nie umformatiert.
  • Kommas, Anführungszeichen und Zeilenumbrüche in Anführungszeichen werden nach RFC 4180 gelesen. Eine leere Spaltenüberschrift wird zu Column 3, eine doppelte zu name (2).
  • Die Ausgabe ist UTF-8. Eine vollständige Seite deklariert das mit <meta charset="utf-8">; fügen Sie Nur Tabelle in eine andere Seite ein, muss auch diese UTF-8 verwenden.

Fehlerbehebung

  • Umlaute erscheinen in der Quelldatei als ä oder é. Die CSV-Datei ist nicht in UTF-8 gespeichert. Wählen Sie unter Importeinstellungen ihre Codierung (bei älteren Excel-Exporten oft Windows-1252) und öffnen Sie sie erneut.
  • Tags aus meinen Daten erscheinen als Text. Das HTML in Ihren Zellen wurde absichtlich maskiert, damit es nicht als Markup ausgeführt werden kann. Bearbeiten Sie das Ergebnis, wenn Sie dem Inhalt vertrauen und ihn dargestellt haben möchten.
  • Die eingefügte Tabelle hat keine Rahmen. Nur Tabelle fügt (bei aktiver Gestaltung) Klassennamen hinzu, aber kein CSS. Gestalten Sie .csv-table und td.num im Stylesheet Ihrer Website, oder wählen Sie Vollständige HTML-Seite, um die eingebauten Stile zu erhalten.
  • Eine Spalte enthält alle Werte. Das Trennzeichen wurde falsch erkannt. Stellen Sie es unter Importeinstellungen ein.

Grenzen und Datenschutz

Dateien bis 25 MB, 100.000 Zeilen oder 2 Millionen Zellen öffnen mit Live-Vorschau der ersten 200 Zeilen. Größere Dateien werden als Datenstrom umgewandelt: Die Datei wird zweimal abschnittsweise gelesen (einmal, um die Spalten zu erfassen und festzustellen, welche numerisch sind, einmal zum Schreiben), ein Hinweis besagt, dass der Download die ganze Datei umfasst, und Kopieren wird nicht angeboten. Eine einzelne Ausgabedatei ist auf 4 GB begrenzt.

Die Umwandlung läuft in einem Hintergrund-Worker in diesem Tab; die Seite bleibt bedienbar, und Abbrechen beendet den Vorgang. Die CSV-Datei wird nie an einen Server gesendet.

Beispiel

Eine Bestellliste mit einem kaufmännischen Und, einem Apostroph, Anführungszeichen und HTML in einem zweizeiligen Kommentar, umgewandelt mit den Standardeinstellungen (Nur Tabelle, gestaltet, Zeilenumbrüche angezeigt). qty besteht nur aus Zahlen, daher erhalten diese Zellen class="num".

CSV
id,product,qty,comment
0042,Fish & Chips,2,"<b>Extra</b> vinegar
no salt"
0043,"O'Brien's ""Stout""",12,
HTML-Ausgabe
<table class="csv-table">
  <thead>
    <tr>
      <th scope="col">id</th>
      <th scope="col">product</th>
      <th scope="col">qty</th>
      <th scope="col">comment</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td dir="auto">0042</td>
      <td dir="auto">Fish &amp; Chips</td>
      <td class="num" dir="auto">2</td>
      <td dir="auto">&lt;b&gt;Extra&lt;/b&gt; vinegar<br>no salt</td>
    </tr>
    <tr>
      <td dir="auto">0043</td>
      <td dir="auto">O&#39;Brien&#39;s &quot;Stout&quot;</td>
      <td class="num" dir="auto">12</td>
      <td dir="auto"></td>
    </tr>
  </tbody>
</table>

Fragen und Antworten

Kann ich die Ausgabe bedenkenlos in meine Website einfügen?

Die Daten können kein Markup einschleusen: Jeder Wert, jede Überschrift und die Beschriftung werden HTML-maskiert, und kein Wert landet je in einem Attribut. Die einzigen Tags in der Ausgabe sind die Tabellenelemente, die der Konverter selbst schreibt.

Warum steht auf der Seite lang="de" statt lang="en"?

Eine vollständige Seite übernimmt ihre Sprachangabe aus der Sprache der Website, die Sie gerade verwenden – hier also Deutsch. Ändern Sie das Attribut lang nach dem Herunterladen, wenn Ihre Daten in einer anderen Sprache vorliegen.

Kann ich die HTML-Tabelle sortieren oder filtern?

Die Ausgabe ist eine statische Tabelle ohne Skripte. Sortieren oder filtern Sie die Daten zuerst mit CSV sortieren oder CSV filtern und wandeln Sie sie dann um.

Standards und Quellen