CSV to HTML Table

Перетворіть CSV на таблицю HTML

Спробувати приклад

Введення CSV

Вивід HTML

Працює локально · Безпечно вставляти секрети
HTML-таблиця з'явиться тут…
Перший рядок — заголовок:

Що таке конвертація CSV у HTML-таблицю?

Конвертація CSV у HTML-таблицю перетворює значення, розділені комами, на структурований HTML-розмітку, яку браузери відображають як візуальну таблицю. У виводі використовуються стандартні HTML-елементи таблиці, визначені у HTML Living Standard: table, thead, tbody, tr, th та td. Кожен рядок CSV відповідає елементу tr, а кожне поле — клітинці td або th.

CSV-файли зберігають дані у вигляді простого тексту, де рядки розділяються символами нового рядка, а поля — роздільниками (зазвичай комами). CSV добре підходить для зберігання даних і передачі між програмами на кшталт Excel, Google Sheets та баз даних, однак не має рівня відображення. HTML-таблиці додають цей рівень, обгортаючи дані у семантичну розмітку, що підтримує оформлення через CSS, сортування за допомогою JavaScript та доступність через атрибути на кшталт scope та aria-label.

Конвертація повинна обробляти кілька крайніх випадків, визначених у RFC 4180: поля в лапках, що містять коми або символи нового рядка, екрановані подвійні лапки всередині полів, а також змінні роздільники (крапка з комою, табуляція, вертикальна риска). Коректний конвертер також екранує HTML-сутності у вмісті клітинок, замінюючи <, >, & та лапки на їхні еквіваленти, щоб запобігти помилкам розмітки або XSS-вразливостям.

Навіщо використовувати конвертер CSV у HTML-таблицю?

Створювати HTML-таблиці вручну — стомлива і схильна до помилок робота, особливо для наборів даних із десятками стовпців або сотнями рядків. Цей конвертер виконує парсинг, екранування та форматування за один крок.

Миттєва генерація таблиці
Вставте CSV і отримайте повну HTML-таблицю з правильною структурою thead та tbody. Без ручного написання тегів, без підрахунку клітинок у рядку.
🔒
Обробка з пріоритетом конфіденційності
Вся конвертація виконується у вашому браузері за допомогою JavaScript. Ваші CSV-дані ніколи не надсилаються на сервер, не записуються у журнали і не зберігаються.
🎯
Чистий, коректний вивід
Згенерований HTML відповідає HTML Living Standard з правильним вкладенням: table > thead/tbody > tr > th/td. Спеціальні символи екрануються як HTML-сутності для запобігання проблемам відображення.
📋
Підтримка різних форматів введення
Автоматично розпізнає коми, крапки з комою, табуляцію та вертикальні риски як роздільники. Обробляє правила цитування RFC 4180, зокрема екрановані подвійні лапки та багаторядкові поля.

Сценарії використання CSV to HTML Table

Frontend-розробка
Генеруйте HTML-таблицю зі зразкових даних для прототипування UI-компонента. Копіюйте вивід безпосередньо у шаблон React, Vue або Angular і застосовуйте CSS-класи.
Створення шаблонів електронних листів
Поштові клієнти (Outlook, Gmail) надійно відображають HTML-таблиці, але відхиляють більшість методів CSS-макетування. Конвертуйте CSV-список контактів або звіт у таблицю для вставки в HTML-лист.
Вміст статичних сайтів
Вставляйте згенеровану HTML-таблицю на сторінки Jekyll, Hugo або Astro, коли дані надходять з експорту електронної таблиці. Жодних плагінів для збірки не потрібно.
Відображення тестових даних QA
Конвертуйте CSV-матрицю тестів у HTML-таблицю для включення у звіт або сторінку Confluence. Рецензенти можуть переглядати результати без відкриття програми для роботи з таблицями.
Журналістика даних
Перетворюйте CSV-набір даних на HTML-таблицю, яку можна оформити та вставити у статтю CMS. Додавайте CSS для смугастого оформлення, сортування або адаптивного обгортання після конвертації.
Навчання та документація
Створюйте приклади HTML-таблиць з реальних CSV-даних для навчальних посібників, документації API або навчальних матеріалів. Студенти бачать одночасно вихідний формат і відображуваний результат.

Довідник елементів HTML-таблиці

Добре структурована HTML-таблиця використовує семантичні елементи, що розділяють заголовок, тіло та підвал. Екранні зчитувачі та пошукові системи використовують ці елементи для розуміння структури таблиці. Групування рядків за допомогою thead, tbody та tfoot дозволяє браузерам застосовувати незалежне прокручування та повторювати рядки заголовка в друкованих макетах.

ЕлементРольПримітки
<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 проти HTML-таблиці

CSV — транспортний формат, оптимізований для простоти, тоді як HTML — формат відображення, оптимізований для рендерингу, доступності та інтерактивності у браузерах.

CSV
Формат простого тексту. Без типів даних: кожне значення є рядком. Без оформлення, вкладення, метаданих. Рядки розділяються символами нового рядка, поля — роздільниками. Мінімальний розмір файлу. Підтримується всіма електронними таблицями, базами даних та ETL-інструментами. Визначений у RFC 4180.
HTML Table
Формат розмітки з семантичною структурою. Розрізняє заголовки (th) та дані (td). Підтримує атрибути colspan, rowspan, scope та class для оформлення та доступності. Браузери розбирають розмітку у DOM для взаємодії через CSS та JavaScript. Можна сортувати, фільтрувати або розбивати на сторінки за допомогою бібліотек на кшталт DataTables без серверної обробки.

Приклади коду

Нижче наведено приклади програмної конвертації CSV у HTML-таблиці різними мовами програмування. Кожен приклад окремо обробляє рядок заголовка та екранує HTML-сутності у вмісті клітинок. Ці фрагменти готові до використання у скриптах, конвеєрах збірки або бекенд-ендпоінтах, що генерують HTML-звіти з експортів даних.

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

Часті запитання

Як конвертувати CSV у HTML-таблицю?
Вставте CSV у поле введення. Конвертер розбирає кожен рядок, перший рядок відображає у елементи th всередині thead, а решту рядків обгортає у елементи td всередині tbody. Результатом є повна HTML-таблиця, готова до копіювання.
Чи є згенерований HTML доступним?
У виводі використовуються елементи thead та th, які надають екранним зчитувачам структурну інформацію про таблицю. Для повної відповідності WCAG 2.1 слід додати атрибути scope до клітинок заголовка та елемент caption з описом вмісту таблиці.
Що відбувається зі спеціальними символами на кшталт < та & у CSV?
Конвертер екранує всі HTML-чутливі символи: < стає &lt;, > стає &gt;, & стає &amp;, а подвійні лапки стають &quot;. Це запобігає помилкам розмітки та захищає від XSS, якщо ви вбудовуєте таблицю у веб-сторінку.
Чи можна конвертувати файл із роздільником крапка з комою або табуляцією?
Так. Інструмент автоматично визначає роздільник, аналізуючи перший рядок введення. Підтримуються коми, крапки з комою, табуляція та вертикальні риски. Не потрібно попередньо перетворювати файл у формат із комами.
У чому різниця між конвертацією CSV у HTML та CSV у Markdown-таблицю?
CSV у HTML генерує розмітку для відображення у браузері з семантичними елементами (thead, tbody, th, td) та підтримує оформлення через CSS-класи. CSV у Markdown генерує таблиці з вертикальними рисками у вигляді простого тексту, що використовуються у README на GitHub та документації. Використовуйте HTML, коли потрібен контроль над оформленням або сумісність з поштою; використовуйте Markdown для документації та репозиторіїв.
Чи обробляє конвертер CSV-файли з полями в лапках?
Так. Парсер дотримується правил RFC 4180: поля в подвійних лапках можуть містити коми, символи нового рядка та буквальні подвійні лапки (екрановані як два підряд подвійних лапки). Лапки знімаються з виводу, а вміст поля розміщується всередині клітинки HTML.
Чи можна оформити згенеровану HTML-таблицю за допомогою CSS?
Вивід — це чистий HTML без вбудованих стилів або класів, тому можна застосовувати будь-який CSS. Додайте клас до елемента table, а потім використовуйте селектори на кшталт table th для заголовків, table td для клітинок та table tr:nth-child(even) для смугастого оформлення. Фреймворки Bootstrap та Tailwind мають вбудовані утилітарні класи для таблиць.