CSV na Tabelę HTML

Konwertuj CSV na tabelę HTML

Wypróbuj przykład

Wejście CSV

Wyjście HTML

Działa lokalnie · Bezpieczne do wklejania sekretów
Tabela HTML pojawi się tutaj…
Pierwszy wiersz to nagłówek:

Czym jest konwersja CSV na tabelę HTML?

Konwersja CSV na tabelę HTML przekształca wartości rozdzielone przecinkami w ustrukturyzowany znacznik HTML, który przeglądarki renderują jako wizualną tabelę. Wynik używa standardowych elementów tabeli HTML zdefiniowanych w HTML Living Standard: table, thead, tbody, tr, th oraz td. Proces ten mapuje każdy wiersz CSV na element tr, a każde pole na komórkę td lub th.

Pliki CSV przechowują dane jako zwykły tekst, gdzie wiersze są rozdzielone znakami nowej linii, a pola — separatorami (zazwyczaj przecinkami). Choć CSV sprawdza się przy przechowywaniu i przesyłaniu danych między aplikacjami takimi jak Excel, Google Sheets czy bazy danych, nie ma warstwy prezentacji. Tabele HTML dodają tę warstwę, owijając dane w semantyczny znacznik obsługujący stylowanie przez CSS, sortowanie przez JavaScript oraz dostępność dzięki atrybutom takim jak scope i aria-label.

Konwersja musi obsługiwać kilka przypadków brzegowych zdefiniowanych w RFC 4180: pola w cudzysłowach zawierające przecinki lub znaki nowej linii, cudzysłowy ucieczki wewnątrz pól oraz różne separatory (średniki, tabulatory, kreski pionowe). Poprawny konwerter zastępuje też encje HTML w treści komórek, zamieniając znaki <, >, & i cudzysłowy na ich odpowiedniki encji, aby zapobiec uszkodzonemu znacznikowi lub podatnościom XSS.

Dlaczego warto używać konwertera CSV na tabelę HTML?

Ręczne budowanie tabel HTML jest żmudne i podatne na błędy, zwłaszcza przy zbiorach danych z dziesiątkami kolumn lub setkami wierszy. Ten konwerter obsługuje parsowanie, ucieczkę encji i formatowanie w jednym kroku.

Natychmiastowe generowanie tabeli
Wklej CSV i otrzymaj kompletną tabelę HTML z poprawną strukturą thead i tbody. Żadnego ręcznego pisania tagów, żadnego liczenia komórek w wierszu.
🔒
Przetwarzanie z zachowaniem prywatności
Cała konwersja odbywa się w przeglądarce z użyciem JavaScript. Twoje dane CSV nigdy nie są wysyłane na serwer, rejestrowane ani przechowywane.
🎯
Czysty, poprawny wynik
Wygenerowany HTML jest zgodny z HTML Living Standard i ma prawidłowe zagnieżdżenie: table > thead/tbody > tr > th/td. Znaki specjalne są zastępowane encjami, aby zapobiec problemom z renderowaniem.
📋
Elastyczne formaty wejściowe
Automatyczne wykrywanie przecinków, średników, tabulatorów i kresek pionowych jako separatorów. Obsługa zasad cytowania RFC 4180, w tym cudzysłowów ucieczki i pól wieloliniowych.

Przypadki użycia CSV na tabelę HTML

Tworzenie frontendu
Wygeneruj tabelę HTML z przykładowych danych, aby prototypować komponent UI. Skopiuj wynik bezpośrednio do szablonu React, Vue lub Angular i zastosuj klasy CSS.
Budowanie szablonów e-mail
Klienty e-mail (Outlook, Gmail) niezawodnie renderują tabele HTML, ale odrzucają większość metod układu CSS. Przekształć listę kontaktów CSV lub raport w tabelę do osadzenia w wiadomości HTML.
Treść statycznych witryn
Wstaw wygenerowaną tabelę HTML do strony Jekyll, Hugo lub Astro, gdy dane pochodzą z eksportu arkusza kalkulacyjnego. Żadnej wtyczki build-time nie jest potrzebna.
Wyświetlanie danych testowych QA
Przekształć macierz testów CSV w tabelę HTML do załączenia w raporcie z testów lub na stronie Confluence. Recenzenci mogą przejrzeć wyniki bez otwierania arkusza kalkulacyjnego.
Dziennikarstwo danych
Zamień zbiór danych CSV w tabelę HTML, którą można stylizować i osadzać w artykule CMS. Po konwersji dodaj CSS do pasiastości, sortowania lub responsywnego zawijania.
Nauka i dokumentacja
Twórz przykłady tabel HTML z rzeczywistych danych CSV do samouczków, dokumentacji API lub materiałów kursowych. Studenci widzą zarówno format źródłowy, jak i wyrenderowany wynik.

Dokumentacja elementów tabeli HTML

Dobrze zbudowana tabela HTML używa elementów semantycznych oddzielających nagłówki, treść i stopkę. Czytniki ekranu i wyszukiwarki korzystają z tych elementów, aby zrozumieć strukturę tabeli. Grupowanie wierszy za pomocą thead, tbody i tfoot pozwala przeglądarkom stosować niezależne przewijanie i powtarzać wiersze nagłówka w układach wydruku.

ElementRolaUwagi
<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 a tabela HTML

CSV to format transportowy zoptymalizowany pod kątem prostoty, podczas gdy HTML to format prezentacyjny zoptymalizowany pod kątem renderowania, dostępności i interaktywności w przeglądarkach.

CSV
Format zwykłego tekstu. Brak typów danych: każda wartość jest ciągiem znaków. Brak stylowania, zagnieżdżania, metadanych. Wiersze rozdzielone znakami nowej linii, pola — separatorami. Minimalny rozmiar pliku. Powszechnie obsługiwany przez arkusze kalkulacyjne, bazy danych i narzędzia ETL. Zdefiniowany przez RFC 4180.
HTML Table
Format znacznikowy z semantyczną strukturą. Odróżnia nagłówki (th) od danych (td). Obsługuje atrybuty takie jak colspan, rowspan, scope i class do stylowania i dostępności. Przeglądarka parsuje go do DOM, umożliwiając interakcję CSS i JavaScript. Można go sortować, filtrować lub paginować za pomocą bibliotek takich jak DataTables bez żadnego przetwarzania po stronie serwera.

Przykłady kodu

Oto jak programowo konwertować CSV na tabele HTML w różnych językach. Każdy przykład obsługuje wiersz nagłówka oddzielnie i zastępuje encje HTML w treści komórek. Te fragmenty kodu są gotowe do wstawienia do skryptu, potoku budowania lub punktu końcowego API generującego raporty HTML z eksportów danych.

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

Najczęściej zadawane pytania

Jak przekonwertować CSV na tabelę HTML?
Wklej CSV do panelu wejściowego. Konwerter parsuje każdy wiersz, mapuje pierwszy wiersz na elementy th wewnątrz thead i owija pozostałe wiersze elementami td wewnątrz tbody. Wynik to kompletna tabela HTML gotowa do skopiowania.
Czy wygenerowany HTML jest dostępny?
Wynik używa elementów thead i th, które dostarczają czytnikom ekranu informacji strukturalnych o tabeli. Aby zapewnić pełną zgodność z WCAG 2.1, powinieneś dodać atrybuty scope do komórek nagłówka oraz element caption opisujący treść tabeli.
Co się dzieje ze znakami specjalnymi takimi jak < i & w moim pliku CSV?
Konwerter zastępuje wszystkie znaki wrażliwe dla HTML: < staje się &lt;, > staje się &gt;, & staje się &amp;, a podwójne cudzysłowy stają się &quot;. Zapobiega to uszkodzeniu znacznika i chroni przed XSS, jeśli osadzasz tabelę na stronie internetowej.
Czy mogę przekonwertować plik rozdzielony średnikami lub tabulatorami?
Tak. Narzędzie automatycznie wykrywa separator, analizując pierwszy wiersz danych wejściowych. Obsługuje przecinki, średniki, tabulatory i kreski pionowe. Nie musisz wcześniej konwertować pliku do formatu rozdzielanego przecinkami.
Jaka jest różnica między CSV na HTML a CSV na tabele Markdown?
CSV na HTML generuje znacznik renderowany przez przeglądarkę z elementami semantycznymi (thead, tbody, th, td) i obsługuje stylowanie przez klasy CSS. CSV na Markdown generuje tabele w zwykłym tekście rozdzielane kreskami pionowymi, używane w plikach README na GitHub i dokumentacji. Używaj HTML, gdy potrzebujesz kontroli nad stylem lub kompatybilności z e-mailem; używaj Markdown do dokumentów i repozytoriów.
Czy konwerter obsługuje pliki CSV z polami w cudzysłowach?
Tak. Parser przestrzega zasad RFC 4180: pola opakowane w podwójne cudzysłowy mogą zawierać przecinki, znaki nowej linii i dosłowne podwójne cudzysłowy (zapisane jako dwa kolejne podwójne cudzysłowy). Cudzysłowy są usuwane z wyniku, a treść pola jest umieszczana wewnątrz komórki HTML.
Czy mogę stylizować wygenerowaną tabelę HTML za pomocą CSS?
Wynik to czysty HTML bez stylów inline ani klas, więc możesz zastosować dowolny CSS. Dodaj klasę do elementu table, a następnie użyj selektorów takich jak table th dla nagłówków, table td dla komórek i table tr:nth-child(even) do efektu pasiastego. Frameworki takie jak Bootstrap i Tailwind mają wbudowane klasy pomocnicze dla tabel.