CSV to HTML Table

CSV naar HTML-tabel converteren

Probeer een voorbeeld

CSV-invoer

HTML-uitvoer

Draait lokaal · Veilig om secrets te plakken
HTML-tabel verschijnt hier…
Eerste rij is koptekst:

Wat is CSV naar HTML-tabel conversie?

CSV naar HTML-tabel conversie neemt kommagescheiden waarden en transformeert deze naar gestructureerde HTML-markup die browsers kunnen weergeven als een visuele tabel. De uitvoer gebruikt standaard HTML-tabelelementen gedefinieerd in de HTML Living Standard: table, thead, tbody, tr, th en td. Dit proces mapt elke CSV-rij naar een tr-element en elk veld naar een td- of th-cel.

CSV-bestanden slaan gegevens op als platte tekst waarbij rijen worden gescheiden door nieuwe regels en velden worden gescheiden door scheidingstekens (doorgaans komma's). Hoewel CSV goed werkt voor gegevensopslag en uitwisseling tussen toepassingen zoals Excel, Google Sheets en databases, heeft het geen presentatielaag. HTML-tabellen voegen die laag toe door gegevens te omhullen met semantische markup die styling met CSS, sorteren met JavaScript en toegankelijkheid via attributen zoals scope en aria-label ondersteunt.

De conversie moet meerdere randgevallen afhandelen die zijn gedefinieerd in RFC 4180: aangehaalde velden met komma's of nieuwe regels, geëscapete aanhalingstekens binnen velden, en wisselende scheidingstekens (puntkomma's, tabs, pipes). Een correcte converter escaped ook HTML-entiteiten in celinhoud, waarbij <, >, & en aanhalingstekens worden vervangen door hun entiteitsequivalenten om kapotte markup of XSS-kwetsbaarheden te voorkomen.

Waarom een CSV naar HTML-tabel converter gebruiken?

HTML-tabellen handmatig bouwen is omslachtig en foutgevoelig, vooral voor datasets met tientallen kolommen of honderden rijen. Deze converter regelt het parsen, escapen en opmaken in één stap.

Direct tabel genereren
Plak CSV en ontvang een complete HTML-tabel met correcte thead- en tbody-structuur. Geen handmatig tags schrijven, geen cellen per rij tellen.
🔒
Privacy-first verwerking
Alle conversie wordt uitgevoerd in je browser via JavaScript. Je CSV-gegevens worden nooit naar een server verzonden, nooit gelogd en nooit opgeslagen.
🎯
Schone, geldige uitvoer
De gegenereerde HTML volgt de HTML Living Standard met correcte nesting: table > thead/tbody > tr > th/td. Speciale tekens worden als entiteiten geëscapet om weergaveproblemen te voorkomen.
📋
Flexibele invoerformaten
Detecteert automatisch komma's, puntkomma's, tabs en pipes als scheidingstekens. Verwerkt RFC 4180-aanhalingsregels inclusief geëscapete aanhalingstekens en meerregelige velden.

Gebruikssituaties voor CSV naar HTML-tabel

Frontend-ontwikkeling
Genereer een HTML-tabel op basis van voorbeeldgegevens om een UI-component te prototypen. Kopieer de uitvoer direct naar een React-, Vue- of Angular-template en pas CSS-klassen toe.
E-mailsjablonen maken
E-mailclients (Outlook, Gmail) renderen HTML-tabellen betrouwbaar maar verwerpen de meeste CSS-layoutmethoden. Converteer een CSV-contactlijst of rapport naar een tabel die je in een HTML-e-mail kunt insluiten.
Inhoud voor statische sites
Voeg een gegenereerde HTML-tabel in op een Jekyll-, Hugo- of Astro-pagina wanneer je gegevens afkomstig zijn uit een spreadsheet-export. Geen buildtijd-plugin nodig.
QA-testgegevens weergeven
Converteer een CSV-testmatrix naar een HTML-tabel voor opname in een testrapport of Confluence-pagina. Reviewers kunnen resultaten bekijken zonder een spreadsheet-applicatie te openen.
Datajournalistiek
Zet een CSV-dataset om in een HTML-tabel die gestijld en ingesloten kan worden in een CMS-artikel. Voeg CSS toe voor alternatieve kleuren, sortering of responsieve opmaak na de conversie.
Onderwijs en documentatie
Maak HTML-tabelvoorbeelden op basis van echte CSV-gegevens voor tutorials, API-documentatie of cursusmateriaal. Studenten zien zowel het bronformaat als de gerenderde uitvoer.

Referentie HTML-tabelelementen

Een goed gestructureerde HTML-tabel gebruikt semantische elementen die kopteksten, body en voettekst scheiden. Schermlezers en zoekmachines gebruiken deze elementen om de tabelstructuur te begrijpen. Rijen groeperen met thead, tbody en tfoot stelt browsers in staat onafhankelijk te scrollen en koptekstrijen te herhalen in afdruklay-outs.

ElementRolNotities
<table>Table rootWraps the entire table structure
<thead>Header groupContains header rows; browsers repeat on print page breaks
<tbody>Body groupContains data rows; enables independent scrolling with CSS
<tfoot>Footer groupSummary or totals row; renders after tbody
<tr>Table rowGroups cells horizontally
<th>Header cellBold and centered by default; supports scope attribute for accessibility
<td>Data cellStandard content cell; accepts any inline or block HTML
<caption>Table captionVisible title above the table; read by screen readers first
<colgroup>Column groupApplies width or style to entire columns without per-cell classes

CSV vs HTML-tabel

CSV is een transportformaat geoptimaliseerd voor eenvoud, terwijl HTML een presentatieformaat is geoptimaliseerd voor weergave, toegankelijkheid en interactiviteit in browsers.

CSV
Platte tekstindeling. Geen gegevenstypen: elke waarde is een tekenreeks. Geen styling, geen nesting, geen metadata. Rijen worden gescheiden door nieuwe regels, velden door scheidingstekens. Bestandsgrootte is minimaal. Universeel ondersteund door spreadsheets, databases en ETL-tools. Gedefinieerd door RFC 4180.
HTML Table
Markup-formaat met semantische structuur. Onderscheidt kopteksten (th) van gegevens (td). Ondersteunt attributen zoals colspan, rowspan, scope en class voor styling en toegankelijkheid. Verwerkt door browsers naar de DOM voor CSS- en JavaScript-interactie. Kan worden gesorteerd, gefilterd of gepagineerd met bibliotheken zoals DataTables zonder server-side verwerking.

Codevoorbeelden

Hieronder zie je hoe je CSV programmatisch naar HTML-tabellen kunt converteren in verschillende talen. Elk voorbeeld verwerkt de koptekstrij afzonderlijk en escaped HTML-entiteiten in celinhoud. Deze fragmenten zijn klaar om direct te gebruiken in een script, een build-pipeline of een backend API-eindpunt dat HTML-rapporten genereert uit data-exports.

JavaScript (browser / Node.js)
// CSV string → HTML table with thead/tbody
const csv = `name,age,city
Alice,30,Berlin
Bob,25,Tokyo`

function csvToHtmlTable(csv) {
  const rows = csv.trim().split('\n').map(r => r.split(','))
  const [headers, ...data] = rows
  const ths = headers.map(h => `<th>${h}</th>`).join('')
  const trs = data.map(row =>
    '    <tr>' + row.map(c => `<td>${c}</td>`).join('') + '</tr>'
  ).join('\n')
  return `<table>
  <thead><tr>${ths}</tr></thead>
  <tbody>
${trs}
  </tbody>
</table>`
}

console.log(csvToHtmlTable(csv))
// → <table><thead><tr><th>name</th>...</tr></thead><tbody>...</tbody></table>
Python
import csv, io, html

csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""

reader = csv.reader(io.StringIO(csv_string))
headers = next(reader)

lines = ['<table>', '  <thead>', '    <tr>']
for h in headers:
    lines.append(f'      <th>{html.escape(h)}</th>')
lines += ['    </tr>', '  </thead>', '  <tbody>']

for row in reader:
    lines.append('    <tr>')
    for cell in row:
        lines.append(f'      <td>{html.escape(cell)}</td>')
    lines.append('    </tr>')

lines += ['  </tbody>', '</table>']
print('\n'.join(lines))
# → well-formed HTML table with escaped special characters
PHP
<?php
$csv = "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo";
$rows = array_map('str_getcsv', explode("\n", trim($csv)));
$headers = array_shift($rows);

echo "<table>\n  <thead>\n    <tr>\n";
foreach ($headers as $h) {
    echo "      <th>" . htmlspecialchars($h) . "</th>\n";
}
echo "    </tr>\n  </thead>\n  <tbody>\n";

foreach ($rows as $row) {
    echo "    <tr>\n";
    foreach ($row as $cell) {
        echo "      <td>" . htmlspecialchars($cell) . "</td>\n";
    }
    echo "    </tr>\n";
}
echo "  </tbody>\n</table>";
// → <table><thead>...<th>name</th>...</thead><tbody>...</tbody></table>
CLI (awk / csvtool)
# Using awk — quick one-liner for simple CSV (no quoted fields)
awk -F, 'NR==1{print "<table><thead><tr>";for(i=1;i<=NF;i++)print "<th>"$i"</th>";print "</tr></thead><tbody>"}
NR>1{print "<tr>";for(i=1;i<=NF;i++)print "<td>"$i"</td>";print "</tr>"}
END{print "</tbody></table>"}' data.csv

# Using Python one-liner for RFC 4180-compliant parsing
python3 -c "
import csv, sys, html
r=csv.reader(sys.stdin); h=next(r)
print('<table><thead><tr>')
print(''.join(f'<th>{html.escape(c)}</th>' for c in h))
print('</tr></thead><tbody>')
for row in r:
    print('<tr>'+''.join(f'<td>{html.escape(c)}</td>' for c in row)+'</tr>')
print('</tbody></table>')
" < data.csv

Veelgestelde vragen

Hoe converteer ik CSV naar een HTML-tabel?
Plak je CSV in het invoerpaneel. De converter parseert elke rij, mapt de eerste rij naar th-elementen binnen thead en omhult de overige rijen in td-elementen binnen tbody. De uitvoer is een complete, kopieerklare HTML-tabel.
Is de gegenereerde HTML toegankelijk?
De uitvoer gebruikt thead- en th-elementen, die schermlezers structurele informatie over de tabel geven. Voor volledige WCAG 2.1-conformiteit dien je scope-attributen toe te voegen aan koptekstcellen en een caption-element dat de tabelinhoud beschrijft.
Wat gebeurt er met speciale tekens zoals < en & in mijn CSV?
De converter escaped alle HTML-gevoelige tekens: < wordt &lt;, > wordt &gt;, & wordt &amp; en aanhalingstekens worden &quot;. Dit voorkomt kapotte markup en beschermt tegen XSS als je de tabel in een webpagina insluitt.
Kan ik een puntkomma- of tab-gescheiden bestand converteren?
Ja. De tool detecteert het scheidingsteken automatisch door de eerste rij van je invoer te analyseren. Het ondersteunt komma's, puntkomma's, tabs en pipes. Je hoeft je bestand niet vooraf naar een kommagescheiden indeling te converteren.
Wat is het verschil tussen CSV naar HTML en CSV naar Markdown-tabellen?
CSV naar HTML produceert browserweergavbare markup met semantische elementen (thead, tbody, th, td) en ondersteunt styling via CSS-klassen. CSV naar Markdown produceert pipe-gescheiden platte tekst tabellen die gebruikt worden in GitHub READMEs en documentatie. Gebruik HTML wanneer je stijlbeheer of e-mailcompatibiliteit nodig hebt; gebruik Markdown voor documenten en repositories.
Kan de converter CSV-bestanden met aangehaalde velden verwerken?
Ja. De parser volgt RFC 4180-regels: velden omgeven door aanhalingstekens kunnen komma's, nieuwe regels en letterlijke aanhalingstekens bevatten (geëscapet als twee opeenvolgende aanhalingstekens). De aanhalingstekens worden verwijderd uit de uitvoer en de veldinhoud wordt geplaatst in de HTML-cel.
Kan ik de gegenereerde HTML-tabel stylen met CSS?
De uitvoer is platte HTML zonder inline-stijlen of klassen, zodat je elke gewenste CSS kunt toepassen. Voeg een klasse toe aan het table-element en gebruik selectors zoals table th voor kopteksten, table td voor cellen en table tr:nth-child(even) voor zebra-striping. Frameworks zoals Bootstrap en Tailwind hebben ingebouwde tabel-hulpklassen.