Зачем нужен конвертер JSON в Excel
Типичный сценарий: вы получили данные из REST API, конфигурационного файла или NoSQL-базы — всё в формате JSON. Чтобы открыть их в табличном процессоре, раздать коллегам или построить сводную диаграмму, нужен плоский файл — XLSX. Страница json-to-excel берёт один JSON-файл и превращает его в книгу Excel (одну таблицу на первом листе) с сохранением типов данных. Процесс идёт полностью в браузере: файл никуда не уходит.
Вход: один файл .json. Выход: файл .xlsx. Между ними — автоматическое уплощение вложенной структуры и предпросмотр результата.
Чем эта страница отличается от других конвертеров
Главное отличие — природа форматов. JSON типизирован и вложен: в нём могут быть объекты, массивы, числа, булевы значения, null. Плоская таблица не держит иерархию напрямую. Поэтому страница применяет правило уплощения: вложенные ключи превращаются в имена столбцов с точечной нотацией (address.city, contact.phone.home). Аналогичного шага не требуется при конвертации CSV или XLSX, потому что те исходно плоские.
Второе отличие — целевой формат XLSX. Это заархивированная XML-книга, которая нативно хранит числа, булевы значения и даже даты (хотя из JSON даты приходят как строки). CSV, напротив, сводит всё к тексту — числа становятся строками, теряется точность, булевы значения «превращаются» в "true"/"false". XLSX сохраняет оригинальный тип: если в JSON поле "active": true, в ячейке Excel появится ИСТИНА (или TRUE в английской версии). Если поле "count": 42, ячейка получит числовой формат.
Однако инструмент не переносит формулы и стили — он пишет только видимые статические данные из JSON. Форматирование, условное оформление или макросы из исходного файла (если бы он был Excel, а не JSON) не поддерживаются. Поскольку вход — JSON, этой проблемы нет, но важно понимать: на выходе — «голая» таблица, которую можно доработать в Excel.
Как JSON преобразуется в таблицу
Страница ожидает «таблицеобразный» JSON. Это массив объектов или массив массивов.
Массив объектов (самый частый случай)
Каждый элемент массива — объект. Ключи объекта становятся заголовками столбцов. Если объект вложенный, ключи уплощаются через точку.
Пример входного JSON:
[
{"name": "Иван", "age": 30, "address": {"city": "Москва", "zip": 101000}},
{"name": "Мария", "age": 25, "address": {"city": "СПб", "zip": 190000}}
]
После конвертации получится таблица с колонками name, age, address.city, address.zip. Строк — две.
Если какой-то объект не содержит всех ключей, в соответствующей ячейке будет пусто. Если ключ отсутствует — тоже пусто.
Массив массивов
Если корневая структура — массив массивов (например, [[1,"a"],[2,"b"]]), то каждый внутренний массив становится строкой. Имена столбцов автоматически назначаются: Column 1, Column 2 и т.д. Это удобно для табличных данных, которые уже плоские.
Что такое «не таблицеобразный» JSON
Инструмент отклоняет файл, где корень — не массив, а одиночный объект, строка, число или null. Также отклоняются массивы, где элементы — не объекты и не массивы (например, [1, "str"]).
Причина: таблица требует однородных строк. Если в массиве есть и объекты, и примитивы — невозможно согласовать заголовки. То же самое, если внутри объектов разные наборы ключей — инструмент всё равно строит таблицу, беря объединение всех ключей.
Типы данных: JSON и Excel (XLSX)
JSON поддерживает четыре примитивных типа: строки, числа, булевы значения, null. XLSX поддерживает те же, плюс даты, ошибки и пустые ячейки. Как происходит отображение?
| Тип в JSON | Тип в XLSX | Примечание |
|---|---|---|
| Строка | Текст | Без изменений |
| Число | Число | Формат ячейки — числовой |
Булево true / false |
Логическое ИСТИНА / ЛОЖЬ | В Excel отображается как TRUE / FALSE или ИСТИНА / ЛОЖЬ в зависимости от локали |
null |
Пустая ячейка | Без форматирования |
| Отсутствующий ключ | Пустая ячейка | То же |
| Вложенный объект | Уплощается в несколько столбцов | В исходном JSON объект как значение не помещается в одну ячейку — только через распаковку |
| Массив внутри объекта | Строка | Массивы как значения не уплощаются; если в JSON есть массив внутри объекта, он превращается в строковое представление |
Ограничения и сообщения об ошибках
Инструмент накладывает несколько границ, чтобы не зависать и не выдавать битые файлы. Вот полный список сообщений об ошибках, которые может увидеть пользователь:
Choose a CSV, JSON or XLSX file.— если расширение не подходит.This file is too large. Use a file under ‹max›.— превышен размер.This JSON is invalid or not table‑shaped.— синтаксическая ошибка или не массив объектов/массивов.This file has no table rows.— массив пуст.This table has more than ‹max› rows.— превышено число строк.This table has more than ‹max› columns.— превышено число столбцов.Conversion cancelled.— пользователь прервал конвертацию.Конвертация занимает слишком много времени. Попробуйте использовать файл меньшего размера.— превышен тайм-аут.
Все лимиты (размер файла, число строк, колонок) заданы на стороне клиента. Максимальный размер файла: 8 МБ. Максимальное количество строк: 10 000. Максимальное количество столбцов: 200. Конвертация, занимающая более 12 секунд, останавливается.
Почему только один лист и нет формул
Страница создаёт один лист с именем по умолчанию "Sheet1". Из JSON невозможно извлечь информацию о формулах, так как JSON их не содержит. Даже если бы вход был Excel с формулами (а это не наш случай), инструмент всё равно не переносит вычисления — только статические значения.
Кому нужен такой конвертер
- Разработчик, который получил ответ от API и хочет быстро посмотреть данные в Excel без написания скрипта.
- Аналитик, получающий JSON-логи или конфигурации — ему нужно построить сводную таблицу, а для этого данные должны быть плоскими.
- Команда, где одни работают с JSON, а другие — только с Excel. Конвертация позволяет коллаборации без дополнительного ПО.
- Пользователь, которому важно сохранить типы чисел и булевых значений. В отличие от CSV, где всё становится текстом, XLSX сохраняет числовые форматы.
FAQ
1. Почему некоторые колонки называются person.name вместо просто name?
Это уплощение вложенных объектов. Инструмент заменяет иерархию точками, чтобы вы могли понять, откуда взялось поле. Если объект person содержит name, то столбец будет person.name. Если вам нужны короткие названия, переименуйте их в Excel.
2. Что значит «JSON не таблицеобразный»?
Это означает, что корневой элемент — не массив (например, одиночный объект {"a":1}). Или массив, но его элементы — не объекты и не массивы ([1, "str"]). Таблицу из таких данных построить невозможно, потому что нет единого набора столбцов.
3. Сохраняются ли числа как числа?
Да. Если в JSON поле "price": 199.99, в Excel появится число 199,99 с десятичным форматом. Булевы значения станут логическими. Строки останутся строками.
4. Что происходит с null и отсутствующими ключами?
И то, и другое даёт пустую ячейку. Разницу в Excel не видно. Если вам нужно различать явный null и отсутствие ключа — используйте другой инструмент или дорабатывайте вручную.
5. Можно ли загрузить несколько файлов одновременно? Нет, только один файл за раз. Если нужно объединить несколько JSON в одну таблицу — объедините их внешним скриптом или вручную перед загрузкой.
6. Почему конвертация может зависнуть?
При очень большом объёме данных (сотни тысяч строк или много вложенных объектов) браузер может не справиться. Встроен тайм-аут с сообщением Конвертация занимает слишком много времени. Попробуйте использовать файл меньшего размера.. Тогда попробуйте уменьшить файл — возьмите только нужные поля или разделите на части.
Страница json-to-excel решает простую задачу: превратить иерархический JSON в плоскую таблицу XLSX без потери типов. Она не пытается восстановить формулы или стили, не отправляет данные на сервер и строго проверяет входной файл на «таблицеобразность». Для быстрой разовой конвертации этого достаточно.