Ответ API → таблица → Excel
Задача звучит просто: «выгрузили данные из системы, нужно в Excel». На деле между JSON и таблицей есть несколько мест, где данные теряются или искажаются.
Шаг первый: найти данные
Ответ API почти никогда не является массивом целиком. Данные лежат под ключом — data, items, result, rows, — рядом с метаданными: количеством, курсором, статусом.
Иногда массивов несколько: сами записи и справочник значений к ним. Инструмент должен показать список кандидатов с количеством элементов, а не молча взять первый попавшийся.
Шаг второй: постраничность
API обычно отдаёт данные страницами по 100–1000 записей. Получится набор файлов page1.json, page2.json, и каждый со своей обёрткой.
Два подхода. Простой: открыть страницы как отдельные вкладки и выгрузить каждую, если объединение делать не нужно. Правильный: при выгрузке просить API отдать данные в формате JSON Lines, если он умеет, — тогда страницы просто склеиваются в один файл конкатенацией, и получается одна таблица.
Про этот формат есть отдельная статья.
Шаг третий: типы
Здесь теряют данные чаще всего. В JSON типы записаны явно: число — это число, строка — строка. При переводе в таблицу их нужно сохранить, а не приводить всё к тексту и не превращать текст в числа.
Особое внимание — идентификаторам. Поле "id": 78123456789012345 в JSON корректно, но при переводе в число с двойной точностью последние цифры потеряются. Такие поля должны оставаться текстовыми — это же правило спасает СНИЛС и номера полисов в CSV, о чём подробно в статье про ведущие нули.
Даты в JSON приходят строками в формате ISO: 2025-01-15T10:30:00Z. Их стоит распознать как даты — тогда в XLSX они станут настоящими датами, с которыми Excel умеет считать.
Шаг четвёртый: выгрузка
При выгрузке в XLSX важно, чтобы числа остались числами, даты — датами, а коды — текстом. Тогда файл открывается и сразу пригоден к работе: сводные таблицы строятся, фильтры работают, ничего не «чинится» вручную.
Если данные нужны не человеку, а другой системе, выгрузка в CSV или SQL с готовым CREATE TABLE экономит ещё один шаг.
Когда всё-таки нужен код
Просмотрщик решает задачу «разово посмотреть и передать дальше». Если выгрузка повторяется каждую неделю, разумнее написать скрипт: он не забудет шаг и не ошибётся в выборе массива.
Граница проходит по регулярности: разовая задача — инструмент, повторяющаяся — автоматизация.
Частые вопросы
Как быть, если в ответе вложенные массивы?
Выбрать уровень, который вам нужен: либо записи с количеством вложенных элементов, либо сами вложенные элементы как строки.
Сохранятся ли длинные идентификаторы?
Да, если они распознаны как текст. Колонка, где значения длиннее 15 цифр, текстовой остаётся всегда.
Можно ли объединить несколько файлов страниц?
Внутри просмотрщика — нет, они открываются вкладками. Склеить страницы проще всего в формате JSON Lines.