Перейти к инструменту
ViewCSV
Без загрузки на сервер

Конвертация CSV в таблицу HTML

orders.csv· ПРИМЕР15 строк · 8 столбцов
Результат
Рамки и числа по правому краю; если выводится только таблица, вместо стилей добавляются имена классов.
<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">Мария Волков</td>
      <td dir="auto">Санкт-Петербург</td>
      <td dir="auto">Notebook A5</td>
      <td class="num" dir="auto">5</td>
      <td class="num" dir="auto">145.75</td>
      <td dir="auto">2026-01-11</td>
      <td dir="auto">pending</td>
    </tr>
    <tr>
      <td dir="auto">001042</td>
      <td dir="auto">Иван Волков</td>
      <td dir="auto">Москва</td>
      <td dir="auto">Desk lamp</td>
      <td class="num" dir="auto">6</td>
      <td class="num" dir="auto">108.80</td>
      <td dir="auto">2026-02-13</td>
      <td dir="auto">pending</td>
    </tr>
    <tr>
      <td dir="auto">001043</td>
      <td dir="auto">Наталья Иванов</td>
      <td dir="auto">Самара</td>
      <td dir="auto">Chair, ergonomic</td>
      <td class="num" dir="auto">7</td>
      <td class="num" dir="auto">15.85</td>
      <td dir="auto">2026-03-21</td>
      <td dir="auto">refunded</td>
    </tr>
    <tr>
      <td dir="auto">001044</td>
      <td dir="auto">Михаил Кузнецов</td>
      <td dir="auto">Нижний Новгород</td>
      <td dir="auto">Coffee beans 1kg</td>
      <td class="num" dir="auto">6</td>
      <td class="num" dir="auto">85.33</td>
      <td dir="auto">2026-04-12</td>
      <td dir="auto">pending</td>
    </tr>
    <tr>
      <td dir="auto">001045</td>
      <td dir="auto">Михаил Морозов</td>
      <td dir="auto">Омск</td>
      <td dir="auto">USB-C cable</td>
      <td class="num" dir="auto">7</td>
      <td class="num" dir="auto"></td>
      <td dir="auto">2026-05-04</td>
      <td dir="auto">paid</td>
    </tr>
    <tr>
      <td dir="auto">001046</td>
      <td dir="auto">Иван Морозов</td>
      <td dir="auto">Москва</td>
      <td dir="auto">Desk lamp</td>
      <td class="num" dir="auto">1</td>
      <td class="num" dir="auto">57.41</td>
      <td dir="auto">2026-06-18</td>
      <td dir="auto">refunded</td>
    </tr>
    <tr>
      <td dir="auto">001047</td>
      <td dir="auto"> Мария Попов </td>
      <td dir="auto">Новосибирск</td>
      <td dir="auto">USB-C cable</td>
      <td class="num" dir="auto">7</td>
      <td class="num" dir="auto">194.44</td>
      <td dir="auto">2026-07-15</td>
      <td dir="auto">shipped</td>
    </tr>
    <tr>
      <td dir="auto">001048</td>
      <td dir="auto">Елена Петров</td>
      <td dir="auto">Новосибирск</td>
      <td dir="auto">USB-C cable</td>
      <td class="num" dir="auto">4</td>
      <td class="num" dir="auto">159.07</td>
      <td dir="auto">2026-08-02</td>
      <td dir="auto">refunded</td>
    </tr>
    <tr>
      <td dir="auto">001049</td>
      <td dir="auto">Елена Кузнецов</td>
      <td dir="auto">Омск</td>
      <td dir="auto">USB-C cable</td>
      <td class="num" dir="auto">3</td>
      <td class="num" dir="auto">119.82</td>
      <td dir="auto">2026-09-22</td>
      <td dir="auto">paid</td>
    </tr>
    <tr>
      <td dir="auto">001050</td>
      <td dir="auto">Елена Новиков</td>
      <td dir="auto">Санкт-Петербург</td>
      <td dir="auto">Desk lamp</td>
      <td class="num" dir="auto">8</td>
      <td class="num" dir="auto">39.58</td>
      <td dir="auto">2026-01-03</td>
      <td dir="auto">shipped</td>
    </tr>
    <tr>
      <td dir="auto">001051</td>
      <td dir="auto">Михаил Фёдоров</td>
      <td dir="auto">Нижний Новгород</td>
      <td dir="auto">Notebook A5</td>
      <td class="num" dir="auto">8</td>
      <td class="num" dir="auto">24.52</td>
      <td dir="auto">2026-02-12</td>
      <td dir="auto">paid</td>
    </tr>
    <tr>
      <td dir="auto">001052</td>
      <td dir="auto">Сергей Соколов</td>
      <td dir="auto">Казань</td>
      <td dir="auto">Chair, ergonomic</td>
      <td class="num" dir="auto">8</td>
      <td class="num" dir="auto">75.43</td>
      <td dir="auto">2026-03-06</td>
      <td dir="auto">paid</td>
    </tr>
    <tr>
      <td dir="auto">001053</td>
      <td dir="auto">Анна Фёдоров</td>
      <td dir="auto">Нижний Новгород</td>
      <td dir="auto">Notebook A5</td>
      <td class="num" dir="auto">9</td>
      <td class="num" dir="auto">149.13</td>
      <td dir="auto">2026-04-10</td>
      <td dir="auto">shipped</td>
    </tr>
    <tr>
      <td dir="auto">001054</td>
      <td dir="auto">Анна Смирнов</td>
      <td dir="auto">Екатеринбург</td>
      <td dir="auto">Notebook A5</td>
      <td class="num" dir="auto">2</td>
      <td class="num" dir="auto">18.09</td>
      <td dir="auto">2026-05-20</td>
      <td dir="auto">refunded</td>
    </tr>
    <tr>
      <td dir="auto">001043</td>
      <td dir="auto">Наталья Иванов</td>
      <td dir="auto">Самара</td>
      <td dir="auto">Chair, ergonomic</td>
      <td class="num" dir="auto">7</td>
      <td class="num" dir="auto">15.85</td>
      <td dir="auto">2026-03-21</td>
      <td dir="auto">refunded</td>
    </tr>
  </tbody>
</table>

15 строк · 1 файл

Откройте или вставьте CSV-файл и получите <table> с <thead> из заголовков <th scope="col"> и по одному <tr> на строку — или полную HTML-страницу, которую можно сразу открыть. Каждое значение экранируется, поэтому <script> или & в ваших данных отображаются как текст и никогда не становятся разметкой. Файл конвертируется в вашем браузере и никогда не загружается на сервер.

Как преобразовать CSV в HTML

  1. Нажмите Открыть файл, перетащите на инструмент файл .csv, .tsv или .txt или выберите Вставить. Если столбцы выглядят неправильно, поправьте разделитель или кодировку в разделе Параметры импорта.
  2. В поле Результат выберите Только таблица, чтобы вставить разметку в существующую страницу или CMS, или Полная HTML-страница для отдельного файла.
  3. Добавьте Подпись (необязательно), решите, как быть с оформлением и переносами строк, затем нажмите Копировать или Скачать HTML.

Для README или вики обычно удобнее таблица Markdown, а для файла, который нужно распечатать, — CSV в PDF.

Что делает каждая настройка

Только таблицаВариант по умолчанию. Только элемент <table> — его можно вставить на страницу, в шаблон письма или в HTML-блок CMS.
Полная HTML-страницаДобавляет <!doctype html>, <html lang="en"> (в русской версии сайта — lang="ru"), <meta charset="utf-8"> и <title> (подпись или, если её нет, Table), так что файл правильно открывается в любом браузере.
Подпись (необязательно)Записывает <caption> первым дочерним элементом таблицы — это доступное имя, которое программы чтения с экрана произносят для таблицы.
Добавить простое оформлениеПо умолчанию включено. В полную страницу встраивается небольшая таблица стилей: рамки, затемнённая строка заголовков и числа по правому краю. При Только таблица вместо этого к таблице добавляется class="csv-table", а к числовым ячейкам — class="num", чтобы внешний вид определял ваш собственный CSS.
Показывать переносы строк в ячейкахПо умолчанию включено. Перенос строки внутри значения становится <br>. Если отключить, перенос остаётся в исходном тексте, а браузеры показывают его как пробел.

Как обрабатываются сложные данные

  • &, <, >, " и ' записываются как &amp;, &lt;, &gt;, &quot; и &#39; в каждой ячейке, заголовке и подписи. Теги из ваших данных показываются как текст, а значит, и HTML, который уже есть в CSV, не отображается как разметка.
  • У каждой ячейки есть dir="auto", поэтому значения на арабском или иврите показываются справа налево даже на странице с письмом слева направо.
  • Столбец считается числовым, только если каждое непустое значение — простое число; столбец идентификаторов вроде 0042 остаётся текстом и не выравнивается вправо. Сами значения никогда не переформатируются.
  • Запятые, кавычки и переносы строк в кавычках читаются по RFC 4180. Пустой заголовок становится Column 3, повторяющийся — name (2).
  • Результат в кодировке UTF-8. Полная страница объявляет её через <meta charset="utf-8">; если вставляете Только таблица в другую страницу, та тоже должна быть в UTF-8.

Устранение неполадок

  • В исходном файле вместо букв «кракозябры» вроде é или ����. CSV не в UTF-8. Выберите его кодировку в параметрах импорта (у старых выгрузок из Excel это часто Windows-1252, у файлов из русской Windows — Windows-1251) и откройте его заново.
  • Теги из моих данных показываются как текст. HTML в ячейках экранирован намеренно, чтобы он не мог сработать как разметка. Если вы доверяете содержимому и хотите, чтобы оно отображалось, отредактируйте результат.
  • У вставленной таблицы нет рамок. Только таблица добавляет имена классов (при включённом оформлении), а не CSS. Задайте стили для .csv-table и td.num в таблице стилей сайта или выберите Полная HTML-страница, чтобы получить встроенные стили.
  • Все значения в одном столбце. Разделитель определён неверно; задайте его в параметрах импорта.

Ограничения и конфиденциальность

Файлы до 25 МБ, 100 000 строк или 2 млн ячеек открываются с живым предпросмотром первых 200 строк. Бо́льшие файлы конвертируются в потоковом режиме: файл читается частями дважды (сначала чтобы измерить столбцы и определить, какие из них числовые, затем чтобы записать результат), уведомление сообщает, что скачанный файл охватывает весь файл, а кнопки Копировать нет. Один выходной файл ограничен 4 ГБ.

Конвертация идёт в фоновом обработчике в этой вкладке, поэтому страница не зависает, а кнопка Отмена её останавливает. CSV никогда не отправляется на сервер.

Пример

Список заказов с амперсандом, апострофом, кавычками и HTML внутри двухстрочного комментария, преобразованный с настройками по умолчанию (Только таблица, с оформлением, переносы строк показываются). В qty только числа, поэтому его ячейки получают 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>

Вопросы и ответы

Безопасно ли вставлять результат на свой сайт?

Данные не могут внедрить разметку: каждое значение, заголовок и подпись экранируются, и ни одно значение не попадает в атрибут. Единственные теги в результате — элементы таблицы, которые записывает сам конвертер.

Откуда на странице атрибут lang="ru"?

Полная страница получает языковой тег по языку сайта, которым вы пользуетесь, — в английской версии это lang="en". Если ваши данные на другом языке, измените атрибут lang после скачивания.

Можно ли сортировать или фильтровать таблицу HTML?

Результат — статическая таблица без скриптов. Сначала отсортируйте или отфильтруйте данные с помощью сортировки CSV или фильтра строк CSV, а потом конвертируйте.

Стандарты и справочные материалы