Что получается на выходе
Файл читается как таблица с разделителем-запятой, и на выходе получается обычная Markdown-таблица: первая строка файла становится шапкой, каждая следующая запись — строкой таблицы. Никакой магии: значения переносятся как текст, без разбора типов.
| name | role | score |
| --- | --- | --- |
| Аня | аналитик | 42 |
| Боб | инженер | 37 |
Первая строка всегда считается шапкой. Если в файле её нет, шапкой станет первая запись с данными: визуально она останется в таблице, но потеряет роль строки данных. Поэтому файлы без шапки лучше поправить до конвертации — добавить строку с названиями колонок в текстовом редакторе.
Где CSV ломает Markdown
Markdown-таблица — плоский формат с жёсткими правилами: ячейки разделяет символ |, а строка заканчивается переводом строки. CSV умеет держать внутри значения и то, и другое — отсюда типовые поломки. Все они проверены на реальных файлах.
| Симптом в готовом .md | Причина | Что сделать |
|---|---|---|
| вся строка в одной ячейке, таблица из одного столбца | разделитель ; вместо запятой | пересохранить с запятой — или заменить ; на , заранее |
| BOM в начале файла | три невидимых байта, которые пишет Excel в «CSV UTF-8» | ничего делать не нужно: BOM отбрасывается при чтении |
| вертикальная черта внутри значения | | в кавычках | ничего делать не нужно: приезжает как \|, таблица не едет |
| две строки вместо одной | перевод строки внутри значения в кавычках | ничего делать не нужно: приезжает как <br> |
| вместо кириллицы мусор | двухбайтовая кодировка (Shift-JIS) без BOM | пересохранить в UTF-8; Windows-1251 и Latin-1 читаются верно |
Точка с запятой вместо запятой
Самая частая причина — региональные настройки Excel: в русской локали он сохраняет CSV с разделителем ;. Конвертер ожидает запятую, поэтому весь файл приходит одной колонкой. Лечится за минуту: «Сохранить как» → тип «CSV (разделители — запятые)», либо заменить разделитель в любом текстовом редакторе.
BOM в начале файла
Excel дописывает в начало файла три невидимых байта. Конвертер их отбрасывает: первая ячейка шапки приезжает как region, а не как \ufeffregion, так что сравнивать заголовки можно как обычно. Пересохранять файл без BOM не нужно.
Вертикальная черта и переводы строк
Оба символа в CSV законны: поле в кавычках может содержать что угодно. Конвертер их экранирует, а не выбрасывает: | приезжает как \|, перевод строки — как <br>, и ряд сохраняет то же число ячеек, что шапка. На выгрузке из 300 записей, где 200 заметок содержали один из двух символов, вышло 302 строки и 0 записей со сдвигом колонок.
Кодировка
Кодировка определяется по всему файлу, а не по первым килобайтам: сначала UTF-16/32 по BOM, затем UTF-8 целиком, затем однобайтовая догадка (принимается, только если расшифровала файл до конца), затем cp1252 и latin-1. Windows-1251 из 1С и старой CRM читается верно, Latin-1 тоже. Что по-прежнему может не повезти — двухбайтовая кодировка без BOM: японский Shift-JIS был прочитан соседней кодовой страницей (東京 → 뱦떈), китайский GBK — верно. Такой файл пересохраните в UTF-8.
Когда Markdown-таблица — плохая идея
Перевод в Markdown нужен, чтобы таблицу читал человек или модель. Для обработки данных он не годится, и лучше это признать сразу:
- больше 30 колонок — строка не читается ни в редакторе, ни в контексте модели;
- тысячи строк — это данные, а не документ: оставьте CSV, а в .md вставьте первые строки как пример;
- числа для скрипта — Markdown не читается pandas и Excel, круг замкнётся;
- длинные описания в ячейках — таблица растягивается, читать невозможно, лучше список «поле — значение»;
- нужны формулы — в CSV их нет вообще, только посчитанные значения.
Для Excel-файлов с несколькими листами и объединёнными ячейками есть отдельный материал — XLSX в Markdown. Если таблица нужна как часть корпуса для поиска, а не как документ — смотрите Markdown для RAG: там про границы чанков и почему таблицу часто лучше разложить в список.
Как конвертировать
В интерфейсе: перетащите файл на страницу конвертера и заберите готовый .md — без регистрации и без создания аккаунта. Для скриптов и пайплайнов есть API:
curl -s -X POST https://llmfiles.com/api/convert \
-F "[email protected]" | jq -r .markdown > sales.md
Ответ — JSON с полями filename, title, markdown и size. Лимит бесплатного уровня — файл до 25 МБ; на размер таблицы в строках ограничений нет, но про читаемость помните пункт выше.
Чего конвертер не делает
- не угадывает типы — числа остаются текстом, даты не нормализуются;
- не чистит данные: дубли, пустые строки и слипшиеся колонки останутся как есть;
- не выравнивает числа по правому краю — Markdown такого не умеет;
- не перекодирует Windows-1251 в UTF-8 автоматически;
- не режет большую таблицу на логические блоки по смыслу;
- не извлекает формулы — в CSV их физически нет.
Приватность
Файл обрабатывается на сервере LlmFiles и не уходит в сторонние сервисы. Временная копия удаляется сразу после конвертации, постоянного хранилища нет; в аналитике — только хеш IP и имя события, без содержимого файла. Если в выгрузке есть персональные данные, посмотрите материал про конвертацию без облака и вариант on-prem.
Сколько это стоит
Бесплатно — 25 файлов в сутки с одного IP, каждый до 25 МБ, регистрация не нужна, счётчик обнуляется раз в сутки. Платных тарифов нет: деньги мы не принимаем, платёжная форма не подключена. Если нужен больший лимит, API-ключ или установка в своей сети — оставьте заявку на странице тарифов, мы напишем, когда всё будет готово.
Чек-лист перед конвертацией
- убедитесь, что разделитель — запятая, а не точка с запятой;
- пересохраните файл в UTF-8 (лучше без BOM);
- проверьте, что первая строка — действительно шапка;
- уберите
|и переводы строк из значений; - решите, нужна ли таблица целиком или хватит первых строк как примера;
- заберите .md и положите его в репозиторий, вики или корпус для модели.