JSON в CSV: как открыть JSON в Excel
Конвертируйте JSON в CSV и откройте его в Excel по колонкам: онлайн-конвертер, импорт с нужным разделителем, Power Query и борьба с кракозябрами.
Посчитайте прямо здесь: JSON (minified) → JSON (formatted)
Открыть инструмент целиком →Почему Excel не открывает JSON напрямую
У вас на руках JSON — выгрузка из CRM, ответ API, дамп каталога товаров. Задача звучит просто: открыть его в Excel, чтобы были колонки, фильтры и возможность что-то посчитать. А на практике двойной клик по файлу .json открывает что угодно: блокнот с простынёй скобок, браузер или предложение выбрать программу из списка. Таблицей это не становится ни при каких действиях мышкой.
Причина в устройстве форматов. Excel живёт в прямоугольной сетке: у каждой строки одинаковый набор колонок. JSON — древовидная структура: объекты внутри объектов, массивы переменной длины, у одной записи пять полей, у соседней — девять. Между этими двумя мирами нужен переводчик — конвертация или Power Query. Переименовать .json в .csv нельзя: сменится только расширение, внутри останется текст со скобками, и Excel либо откажется его читать, либо свалит всё в одну ячейку.
Google Таблицы и LibreOffice Calc ведут себя так же: двойной клик открывает JSON как текст. Привычка «в табличном редакторе всё обязано открываться таблицей» здесь не работает ни в одной программе — дерево сначала нужно сплющить.
Чем JSON отличается от таблицы
Вот типичный JSON — прайс из интернет-магазина:
[
{
"Артикул": "0012",
"Товар": "Кофемолка ручная",
"Цена": 2490,
"Склады": ["Москва", "Казань"]
},
{
"Артикул": "0013",
"Товар": "Френч-пресс 600 мл",
"Цена": 1180,
"Скидка": 15,
"Склады": ["Москва"]
}
]Для глаза здесь всё очевидно — две позиции товара. Но таблицей это станет только после трёх преобразований. Имена полей превратятся в заголовки колонок. Вложенная структура — у второй записи есть поле «Скидка», которого нет у первой, — требует решения: пустая ячейка или отдельная колонка. А массив «Склады» вообще не влезает в одну ячейку без потерь: это два значения, а ячейка одна. CSV таких вещей не умеет — он хранит плоскую таблицу, и всё, что торчало из неё ветками, конвертер должен «расплющить»: схлопнуть в одну ячейку или развернуть в дополнительные строки. От того, как конвертер поступит с вложенностью, и зависит годность результата.
Кстати, если JSON пришёл одной строкой без пробелов и вы сначала хотите понять, что внутри, — прогоните его через форматирование JSON: структура развернётся в читаемое дерево, а заодно инструмент укажет на синтаксические ошибки, которые иначе уронят конвертацию на середине.
Шаг 1. Конвертируем JSON в CSV онлайн
Самый быстрый путь для разовой задачи:
- Откройте конвертер JSON в CSV.
- Вставьте JSON в поле слева — скопируйте целиком, от первой скобки до последней.
- Проверьте предпросмотр: заголовки колонок должны совпасть с именами полей, у каждой строки — свой ряд.
- Скачайте готовый CSV или скопируйте его содержимое.
На файле из примера выше получится таблица с колонками «Артикул», «Товар», «Цена», «Скидка» и «Склады». У первой позиции ячейка «Скидка» будет пустой — это нормально, поле в JSON просто отсутствовало.
Если JSON пришёл одним объектом без квадратных скобок — так иногда выгружают одиночную запись, — конвертер сам обернёт его в массив из одной строки. А вот объект объектов (ключи вида «Товар 1», «Товар 2» внутри родителя) лучше предварительно привести к массиву: иначе колонками станут ключи-номера, и таблица потеряет смысл.
Шаг 2. Открываем CSV в Excel с правильным разделителем
Здесь прячется главная ловушка для русскоязычного Excel. Двойной клик по CSV — и вся таблица уезжает в одну колонку. Причина: в русской локали Excel по умолчанию ждёт разделитель «точка с запятой», потому что обычная запятая занята под десятичную дробь (в России пишут 1 249,50, а не 1,249.50). А конвертеры чаще всего выдают CSV со стандартной запятой — так предписывает формат. Excel честно ищет «;», не находит и склеивает строку целиком.
Есть радикальный обходной путь — поменять разделитель элементов списка на запятую в региональных настройках Windows, тогда и двойной клик начнёт работать. Но трогать общесистемные настройки ради одного файла — плохая сделка: побочные эффекты вылезут в других программах. Безопаснее импорт через меню «Данные».
Правильный путь — импорт с явным указанием разделителя:
- Откройте пустую книгу Excel.
- Вкладка «Данные» → «Из текста/CSV» (в старых версиях — «Получение внешних данных → Из текста»).
- Выберите скачанный файл.
- В окне предпросмотра установите разделитель «Запятая» и кодировку «65001: Юникод (UTF-8)».
- Нажмите «Загрузить» — таблица встанет по колонкам.
Что при этом ломается чаще всего — собрал в таблицу:
| Проблема | Причина | Решение |
|---|---|---|
| Все данные в одной ячейке | Excel с русской локалью ждёт «;», а в файле разделитель «,» | Импортировать через «Данные → Из текста/CSV», указав разделитель явно |
| Кракозябры вида Привет | Файл в UTF-8, а Excel открыл его в кодировке Windows-1251 | В окне импорта выбрать кодировку UTF-8 (65001) |
| Артикул «0012» превратился в 12 | Excel отрезал ведущие нули, приняв строку за число | При импорте задать колонке тип «Текст» (в Power Query — кнопка типа данных на заголовке колонки) |
| Цены съехали: 2490 стала 2,49 | Дроби с точкой Excel воспринял по-своему, а запятую-разделитель — как десятичную | Указать в импорте «;» как разделитель — либо исправить формат колонки на «Число» с точкой-разделителем |
Ведущие нули — самая коварная из этих четырёх. Если артикулы, телефоны или инвентарные номера важны в исходном виде, тип «Текст» надо выставить до того, как данные легли на лист: задним числом нули уже не вернёшь, придётся импортировать заново.
Power Query — для больших файлов и регулярных задач
Если JSON приходит каждую неделю и возня с CSV утомила, посмотрите в сторону Power Query — он встроен в Excel с версии 2016 (для 2010–2013 ставится надстройкой от Microsoft). Схема такая: «Данные → Получить данные → Из файла → Из JSON». Excel сам разберёт структуру и покажет записи; кнопкой «В таблицу» превратите их в таблицу, затем кнопкой с двойной стрелкой на заголовке развернёте вложенные поля в колонки.
Выигрыш не в скорости первого раза — он сопоставим с конвертацией онлайн. Выигрыш в повторении: запрос сохраняется в книге, и когда завтра придёт свежая выгрузка, достаточно положить новый файл на то же место и нажать «Обновить». Для разовой задачи это оверкилл, для еженедельного отчёта — то, что избавляет от ручной возни навсегда.
Две мелочи, которые путают при первом знакомстве. Редактор запросов открывается в отдельном окне — новичку кажется, что Excel завис, хотя тот просто переключил экран. А при первом обновлении Excel спросит про правила конфиденциальности данных: для локальных файлов достаточно нажать «Продолжить», и вопрос больше не вернётся.
Что делать с вложенными массивами
Массивы вроде «Склады» из примера — самое узкое место любой конвертации. Стратегий две, и выбор зависит от того, что вы будете делать с данными дальше.
Первая — схлопывание: все значения массива кладутся в одну ячейку через разделитель, «Москва; Казань». Таблица остаётся компактной, по одной строке на товар, — это то, что нужно для прайсов, отчётов и печати. Именно так поступают большинство онлайн-конвертеров, включая конвертер JSON в CSV.
Вторая — разворот: каждый элемент массива становится отдельной строкой, а поля родителя дублируются. Кофемолка даст две строки — по одной на склад. Это нужно, когда по массиву надо считать: например, сколько позиций лежит на московском складе. В Power Query разворот делается той же кнопкой-стрелкой с выбором «Развернуть → Новая строка».
Наглядно о разнице. После схлопывания прайс выглядит как раньше: одна строка на товар, в ячейке «Склады» — «Москва; Казань». После разворота строк станет три: кофемолка дважды, по числу складов, и френч-пресс один раз — с повторяющимися названием и ценой. Для сводной таблицы верен второй вариант, для печати прайса — первый.
Если массив закопан глубоко — скажем, нужен только блок items[*].price из огромного ответа API — вытащить ветку помогает JSONPath: путь $.items[*] означает «все элементы массива items». В продвинутых конвертерах и в Power Query (шаг с выражением на языке M) можно указать путь явно и не тащить в таблицу половину лишнего. Подробный разбор путей — в статье про JSONPath, а про то, чем JSON вообще отличается от XML и когда какой удобнее, — в сравнении JSON и XML.
Частые вопросы
Почему после конвертации в Excel всё в одной ячейке?
Почти всегда — разделитель. Русский Excel ждёт «;», файл сделан с «,». Открывайте CSV через «Данные → Из текста/CSV» и укажите запятую вручную — таблица соберётся правильно. Таблица решений — выше, в шаге 2.
Как открыть JSON в старом Excel 2007?
Power Query в 2007-м нет совсем, поэтому единственный рабочий путь — онлайн-конвертация в CSV плюс импорт с нужным разделителем. Для 2010–2013 можно докачать надстройку Power Query с сайта Microsoft, для 2016 и новее всё уже встроено.
CSV сохранит формулы и форматирование?
Нет, CSV хранит только данные: текст, числа, даты. Ни цветов, ни формул, ни объединённых ячеек. Если из таблицы нужна красивая страница для отчёта — удобнее превратить CSV в HTML-таблицу, она открывается в браузере со всей структурой.
Файл на несколько сотен мегабайт — что делать?
Помните про потолок листа Excel: 1 048 576 строк. Выгрузка из API на миллионы записей на лист не влезет физически. Power Query сумеет выгрузить результат в модель данных вместо листа, но разумнее сначала срезать лишнее: вытащить JSONPath-ом только нужную ветку или разбить файл.
А если нужна обратная задача — из таблицы получить JSON?
Направление «CSV → JSON» встречается даже чаще: подготовили прайс в Excel, а интернет-магазин принимает только JSON. Механика та же, только наоборот; пошагово она разобрана в статье про конвертацию CSV в JSON.
Коротко
Формула успеха из трёх шагов: конвертируйте JSON в CSV онлайн, открывайте через «Данные → Из текста/CSV» с разделителем-запятой и кодировкой UTF-8, вложенные массивы либо схлопывайте, либо разворачивайте — смотря что дальше делать с данными. Разовая задача на этом закрыта за две минуты. Регулярная — один раз собирается в Power Query и дальше обновляется одной кнопкой.
Попробуйте эти инструменты
Похожие статьи
JSON vs XML — какое выбрать для проекта
Сравнение JSON и XML: синтаксис, размер, скорость парсинга, читаемость. Когда JSON лучше, а когда XML.
JSON форматтер: зачем нужен и как использовать
Что такое форматирование JSON, отступы и пробелы, валидация, minify vs beautify, лучшие практики.
CSV в JSON: конвертация и когда нужна
Как преобразовать CSV в JSON, структура данных, обработка больших файлов, использование в JavaScript.
YAML — конфигурационный формат: полный гид
Синтаксис YAML, отступы, типы данных, отличие от JSON, использование в Docker, Kubernetes, CI/CD.