Что получается
## Лист «Продажи»
| Регион | Q1 | Q2 |
|---|---|---|
| Москва | 48,2 | 52,1 |
| Самара | 12,7 | 15,4 |
Каждый лист идёт подряд под своим заголовком ##. Шапка таблицы становится первой строкой pipe-таблицы, остальные строки — данными.
Что ломается
| Элемент Excel | Результат | Как обойти |
|---|---|---|
| Объединённые ячейки | значение остаётся в левой верхней, остальные пустые | развернуть перед конвертацией |
| Широкие таблицы (30+ колонок) | строка нечитаема | разбить на блоки или взять CSV |
| Формулы | кэшированное значение, а без кэша — текст формулы | если нужны числа — посчитать до записи файла |
| Цвета и условное форматирование | теряется | для человека это не переносится |
| Несколько листов | идут подряд | конвертировать нужный лист отдельно |
Символ | в ячейке | экранируется как \|, разметка цела | ничего делать не нужно |
| Перенос строки в ячейке | приезжает как <br> | ничего делать не нужно |
XLSX или CSV
Если данные нужны скрипту или модели, CSV часто честнее: одна таблица, одна строка — одна запись, никаких стилей и объединений. XLSX в markdown стоит брать, когда таблица небольшая и её должен читать человек.
Для LLM: таблица как данные
Модель читает pipe-таблицу как сетку: видит, что «Самара» — строка, а «Q2» — колонка. Плоский список «Регион: Самара; Q1: 12,7» такого контекста не даёт.
Лимиты
- бесплатно — до 25 МБ, 25 файлов в сутки;
- файл — до 25 МБ, лимит один для всех;
- большие выгрузки лучше резать по периодам или листам: так проще проверять результат.