Przejdź do narzędzia
ViewCSV
Plik nie jest nigdzie wysyłany

Konwertuj CSV do tabeli HTML

orders.csv· DANE PRZYKŁADOWE15 wierszy · 8 kolumn
Wynik
Obramowania i liczby wyrównane do prawej; w wersji „tylko tabela” zamiast tego dodawane są nazwy klas.
<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">Nikodem Kamiński</td>
      <td dir="auto">Poznań</td>
      <td dir="auto">Desk lamp</td>
      <td class="num" dir="auto">7</td>
      <td class="num" dir="auto">195.66</td>
      <td dir="auto">2026-01-06</td>
      <td dir="auto">paid</td>
    </tr>
    <tr>
      <td dir="auto">001042</td>
      <td dir="auto">Antoni Szymański</td>
      <td dir="auto">Wrocław</td>
      <td dir="auto">Chair, ergonomic</td>
      <td class="num" dir="auto">5</td>
      <td class="num" dir="auto">106.18</td>
      <td dir="auto">2026-02-07</td>
      <td dir="auto">refunded</td>
    </tr>
    <tr>
      <td dir="auto">001043</td>
      <td dir="auto">Franciszek Kamiński</td>
      <td dir="auto">Gdańsk</td>
      <td dir="auto">USB-C cable</td>
      <td class="num" dir="auto">1</td>
      <td class="num" dir="auto">142.78</td>
      <td dir="auto">2026-03-19</td>
      <td dir="auto">pending</td>
    </tr>
    <tr>
      <td dir="auto">001044</td>
      <td dir="auto">Nikodem Lewandowski</td>
      <td dir="auto">Gdańsk</td>
      <td dir="auto">Coffee beans 1kg</td>
      <td class="num" dir="auto">3</td>
      <td class="num" dir="auto">155.57</td>
      <td dir="auto">2026-04-26</td>
      <td dir="auto">shipped</td>
    </tr>
    <tr>
      <td dir="auto">001045</td>
      <td dir="auto">Aleksander Nowak</td>
      <td dir="auto">Kraków</td>
      <td dir="auto">Desk lamp</td>
      <td class="num" dir="auto">9</td>
      <td class="num" dir="auto"></td>
      <td dir="auto">2026-05-25</td>
      <td dir="auto">pending</td>
    </tr>
    <tr>
      <td dir="auto">001046</td>
      <td dir="auto">Antoni Kowalski</td>
      <td dir="auto">Szczecin</td>
      <td dir="auto">Notebook A5</td>
      <td class="num" dir="auto">6</td>
      <td class="num" dir="auto">234.47</td>
      <td dir="auto">2026-06-16</td>
      <td dir="auto">pending</td>
    </tr>
    <tr>
      <td dir="auto">001047</td>
      <td dir="auto"> Maja Kamiński </td>
      <td dir="auto">Wrocław</td>
      <td dir="auto">Coffee beans 1kg</td>
      <td class="num" dir="auto">6</td>
      <td class="num" dir="auto">239.01</td>
      <td dir="auto">2026-07-02</td>
      <td dir="auto">pending</td>
    </tr>
    <tr>
      <td dir="auto">001048</td>
      <td dir="auto">Julia Wójcik</td>
      <td dir="auto">Gdańsk</td>
      <td dir="auto">USB-C cable</td>
      <td class="num" dir="auto">8</td>
      <td class="num" dir="auto">212.47</td>
      <td dir="auto">2026-08-02</td>
      <td dir="auto">paid</td>
    </tr>
    <tr>
      <td dir="auto">001049</td>
      <td dir="auto">Zofia Wójcik</td>
      <td dir="auto">Szczecin</td>
      <td dir="auto">Chair, ergonomic</td>
      <td class="num" dir="auto">1</td>
      <td class="num" dir="auto">29.67</td>
      <td dir="auto">2026-09-08</td>
      <td dir="auto">refunded</td>
    </tr>
    <tr>
      <td dir="auto">001050</td>
      <td dir="auto">Aleksander Wójcik</td>
      <td dir="auto">Poznań</td>
      <td dir="auto">Desk lamp</td>
      <td class="num" dir="auto">7</td>
      <td class="num" dir="auto">61.38</td>
      <td dir="auto">2026-01-17</td>
      <td dir="auto">shipped</td>
    </tr>
    <tr>
      <td dir="auto">001051</td>
      <td dir="auto">Jakub Nowak</td>
      <td dir="auto">Kraków</td>
      <td dir="auto">Chair, ergonomic</td>
      <td class="num" dir="auto">3</td>
      <td class="num" dir="auto">76.09</td>
      <td dir="auto">2026-02-20</td>
      <td dir="auto">paid</td>
    </tr>
    <tr>
      <td dir="auto">001052</td>
      <td dir="auto">Jan Wójcik</td>
      <td dir="auto">Poznań</td>
      <td dir="auto">Monitor 27&quot;</td>
      <td class="num" dir="auto">4</td>
      <td class="num" dir="auto">57.81</td>
      <td dir="auto">2026-03-01</td>
      <td dir="auto">refunded</td>
    </tr>
    <tr>
      <td dir="auto">001053</td>
      <td dir="auto">Alicja Dąbrowski</td>
      <td dir="auto">Lublin</td>
      <td dir="auto">Desk lamp</td>
      <td class="num" dir="auto">9</td>
      <td class="num" dir="auto">110.39</td>
      <td dir="auto">2026-04-07</td>
      <td dir="auto">pending</td>
    </tr>
    <tr>
      <td dir="auto">001054</td>
      <td dir="auto">Hanna Kowalski</td>
      <td dir="auto">Wrocław</td>
      <td dir="auto">Notebook A5</td>
      <td class="num" dir="auto">5</td>
      <td class="num" dir="auto">36.16</td>
      <td dir="auto">2026-05-11</td>
      <td dir="auto">paid</td>
    </tr>
    <tr>
      <td dir="auto">001043</td>
      <td dir="auto">Franciszek Kamiński</td>
      <td dir="auto">Gdańsk</td>
      <td dir="auto">USB-C cable</td>
      <td class="num" dir="auto">1</td>
      <td class="num" dir="auto">142.78</td>
      <td dir="auto">2026-03-19</td>
      <td dir="auto">pending</td>
    </tr>
  </tbody>
</table>

15 wierszy · 1 plik

Otwórz lub wklej plik CSV, a dostaniesz element <table> z sekcją <thead> zawierającą nagłówki <th scope="col"> i po jednym <tr> na każdy wiersz – albo kompletną stronę HTML, którą otworzysz bezpośrednio. Każda wartość jest zabezpieczana (escapowana), więc <script> czy & w Twoich danych wyświetlają się jako tekst i nigdy nie stają się kodem. Plik jest konwertowany w Twojej przeglądarce i nigdy nie jest wysyłany na serwer.

Jak przekonwertować CSV do HTML

  1. Kliknij Otwórz plik, upuść plik .csv, .tsv lub .txt na narzędzie albo wybierz Wklej. Jeśli kolumny wyglądają nieprawidłowo, popraw ogranicznik lub kodowanie w sekcji Ustawienia importu.
  2. W polu Wynik wybierz Tylko tabela, aby wkleić kod do istniejącej strony lub systemu CMS, albo Kompletna strona HTML, aby uzyskać samodzielny plik.
  3. Dodaj Podpis (opcjonalnie), zdecyduj o stylach i podziałach wiersza, a potem kliknij Kopiuj lub Pobierz HTML.

Do README lub wiki zwykle łatwiej edytować tabelę Markdown, a plik do wydruku utworzysz narzędziem CSV do PDF.

Co robi każda opcja

Tylko tabelaUstawienie domyślne. Sam element <table>, gotowy do wklejenia na stronę, do szablonu e-maila lub do bloku HTML w systemie CMS.
Kompletna strona HTMLDodaje <!doctype html>, <html lang="en"> (na polskiej stronie z atrybutem lang="pl"), <meta charset="utf-8"> i <title> (podpis albo – jeśli go nie ma – Table), dzięki czemu plik otwiera się poprawnie w każdej przeglądarce.
Podpis (opcjonalnie)Zapisuje element <caption> jako pierwsze dziecko tabeli: to dostępna nazwa, którą czytniki ekranu odczytują dla tabeli.
Dodaj proste styleDomyślnie włączone. Na kompletnej stronie osadza mały arkusz stylów: obramowania, cieniowany wiersz nagłówka i liczby wyrównane do prawej. Przy opcji Tylko tabela zamiast tego dodaje class="csv-table" do tabeli i class="num" do komórek z liczbami, aby wygląd określał Twój własny CSS.
Pokazuj podziały wierszy w komórkachDomyślnie włączone. Podział wiersza wewnątrz wartości staje się znacznikiem <br>. Po wyłączeniu podział zostaje w kodzie źródłowym, gdzie przeglądarki wyświetlają go jako spację.

Jak traktowane są nietypowe dane

  • Znaki &, <, >, " i ' są zapisywane jako &amp;, &lt;, &gt;, &quot; i &#39; w każdej komórce, nagłówku i podpisie. Znaczniki w Twoich danych wyświetlają się jako tekst, co oznacza też, że istniejący kod HTML z pliku CSV nie jest renderowany.
  • Każda komórka ma atrybut dir="auto", więc wartości arabskie czy hebrajskie wyświetlają się od prawej do lewej nawet na stronie pisanej od lewej do prawej.
  • Kolumna jest uznawana za liczbową tylko wtedy, gdy każda niepusta wartość jest zwykłą liczbą; kolumna identyfikatorów, np. 0042, pozostaje tekstem i nie jest wyrównywana do prawej. Same wartości nigdy nie są formatowane od nowa.
  • Przecinki, cudzysłowy i podziały wiersza w cudzysłowie są odczytywane zgodnie z RFC 4180. Pusty nagłówek staje się Column 3, a powtórzony – name (2).
  • Wynik jest zapisany w UTF-8. Kompletna strona deklaruje to znacznikiem <meta charset="utf-8">; gdy wklejasz Tylko tabela do innej strony, ona również musi używać UTF-8.

Rozwiązywanie problemów

  • Polskie znaki wyglądają w pliku źródłowym jak é lub podobne. Plik CSV nie jest zapisany w UTF-8. Wybierz jego kodowanie w ustawieniach importu (dla starszych eksportów z polskiego Excela często Windows-1250) i otwórz plik ponownie.
  • Znaczniki z moich danych wyświetlają się jako tekst. Kod HTML w komórkach został celowo zabezpieczony, aby nie mógł działać jako kod strony. Jeśli ufasz tej treści i chcesz, by była renderowana, zmień wynik ręcznie.
  • Wklejona tabela nie ma obramowań. Opcja Tylko tabela dodaje (przy włączonych stylach) nazwy klas, a nie CSS. Ostyluj .csv-table i td.num w arkuszu stylów swojej witryny albo wybierz Kompletna strona HTML, aby dostać wbudowane style.
  • Wszystkie wartości są w jednej kolumnie. Ogranicznik został źle rozpoznany; ustaw go w ustawieniach importu.

Limity i prywatność

Pliki do 25 MB, 100 000 wierszy lub 2 mln komórek otwierają się z podglądem pierwszych 200 wierszy na żywo. Większe pliki są konwertowane strumieniowo: plik jest odczytywany dwukrotnie we fragmentach (raz, aby zmierzyć kolumny i ustalić, które są liczbowe, i drugi raz, aby zapisać wynik), komunikat informuje, że pobrany plik obejmuje całość, a przycisk Kopiuj nie jest dostępny. Pojedynczy plik wynikowy może mieć najwyżej 4 GB.

Konwersja odbywa się w tle w tej karcie, więc strona cały czas reaguje, a Anuluj przerywa pracę. Plik CSV nigdy nie jest wysyłany na serwer.

Przykład

Lista zamówień ze znakiem &, apostrofem, cudzysłowami i kodem HTML w dwuwierszowym komentarzu, przekonwertowana z ustawieniami domyślnymi (Tylko tabela, ze stylami, z podziałami wiersza). Kolumna qty zawiera same liczby, więc jej komórki dostają class="num".

CSV
id,product,qty,comment
0042,Fish & Chips,2,"<b>Extra</b> vinegar
no salt"
0043,"O'Brien's ""Stout""",12,
HTML
<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>

Pytania i odpowiedzi

Czy wklejenie wyniku na moją stronę jest bezpieczne?

Dane nie mogą wstrzyknąć kodu: każda wartość, nagłówek i podpis są zabezpieczane jako encje HTML, a żadna wartość nigdy nie trafia do atrybutu. Jedyne znaczniki w wyniku to elementy tabeli, które konwerter zapisuje sam.

Dlaczego strona ma atrybut lang="pl"?

Kompletna strona przejmuje znacznik języka z języka serwisu, z którego korzystasz – w wersji angielskiej byłoby to lang="en". Jeśli Twoje dane są w innym języku, po pobraniu zmień atrybut lang.

Czy mogę sortować lub filtrować tabelę HTML?

Wynik to statyczna tabela bez skryptów. Najpierw posortuj lub przefiltruj dane w narzędziu Sortowanie CSV lub Filtrowanie wierszy CSV, a potem je przekonwertuj.

Standardy i źródła