Как конвертировать json в excel, за минуту
Добрый день! Уважаемые читатели. Сегодня я с вами хочу разобрать ситуацию, когда у вас есть на входе данные в формате JSON, а вам из них нужно получить таблицу в Excel. В статье я рассмотрю разные методы и поделюсь скриптами. JSON он же JavaScript Object Notation — это мега популярный текстовый формат обмена данными, основанный на простом синтаксисе JavaScript. Он используется для хранения и передачи структурированной информации в удобочитаемом виде. JSON умеет работать с различными типами данных, включая строки, числа, массивы и объекты, что делает его универсальным инструментом. Благодаря своей простоте и легкости в обработке, он широко применяется в веб-разработке, API и настройках конфигураций. Давайте приступать.
Как выглядит формат JSON
Попросили меня проанализировать файл JSON, в котором есть email адреса, но есть много дублей. Задача состоит в том, чтобы переработать формат JSON в формать Excel, чтобы потом средствами офисного пакета убрать дубли. Внутренности выглядят вот так:
{
"createdAt": "2025-04-28T22:29:57.036Z",
"email": "ivanov@pyatilistnik.org"
},
{
"createdAt": "2025-04-28T22:29:58.466Z",
"email": "ivanov@pyatilistnik.org"
},
{
"createdAt": "2025-04-28T22:30:22.523Z",
"email": "ivanov@pyatilistnik.org"
},
{
"createdAt": "2025-04-28T22:30:26.467Z",
"email": "ivanov@pyatilistnik.org"
},
{
"createdAt": "2025-04-29T06:44:54.525Z",
"email": "petrov@pyatilistnik.org"
И вот таких строк несколько сотен.
Преобразование JSON в XMLS с помощью PowerShell
Для решения данной задачи я воспользуюсь скриптом PowerShell. Я понимаю, что многие вещи, в том числе и обработку такого JSON файла можно поручить какой-то модели ИИ, но мне кажется неправильным скармливать в публичный ИИ, персональные данные.
Запускаем PowerShell ISE, и копируем мой скрипт ниже. Единственное, вам необходимо заменить путь до вашего JSON файла и указать путь, куда требуется положить файл Excel на выходе.
# Тут задайте путь к вашему JSON-файлу
$jsonFilePath = "C:\Temp\full-report.json"# Тут укажите путь для сохранения Excel-файла
$excelFilePath = "C:\Temp\full-report.json.xlsx"# Пробуем прочитать JSON-файл
$jsonData = Get-Content -Path $jsonFilePath -Raw | ConvertFrom-Jsonif ($jsonData -is [array]) {
$dataToExport = $jsonData
} else {
# Если это одиночный объект, создаем массив с одним элементом
$dataToExport = @($jsonData)
}# Импорт модуля ImportExcel (требуется предварительная установка)
# Если модуль не установлен, выполните: Install-Module -Name ImportExcel -Force
Import-Module ImportExcel# Экспорт данных в Excel
$dataToExport | Export-Excel -Path $excelFilePath -WorksheetName "Данные" -AutoSize -TableName "ИмпортированныеДанные" -BoldTopRow -FreezeTopRow
В результате выполнения я получил файл xlsx с разбивкой на столбцы.
Можно немного доработать скрипт, и он удалит все дубли в email и выведет только в конечном файле, уникальные.
# Тут задайте путь к вашему JSON-файлу
$jsonFilePath = "C:\Temp\full-report.json"# Тут укажите путь для сохранения Excel-файла
$excelFilePath = "C:\Temp\full-report.json.xlsx"# Пробуем прочитать JSON-файл
$jsonData = Get-Content -Path $jsonFilePath -Raw | ConvertFrom-Jsonif ($jsonData -is [array]) {
$dataToExport = $jsonData
} else {
$dataToExport = @($jsonData)
}# Удаляем дубликаты по полю email (предполагая, что такое поле существует)
$uniqueData = $dataToExport | Sort-Object -Property email -Unique# Импорт модуля ImportExcel (требуется предварительная установка)
# Если модуль не установлен, выполните: Install-Module -Name ImportExcel -Force
Import-Module ImportExcel# Экспорт данных в Excel
$uniqueData | Export-Excel -Path $excelFilePath -WorksheetName "Данные" -AutoSize -TableName "ИмпортированныеДанные" -BoldTopRow -FreezeTopRow
Как импортировать JSON данные в Microsoft Excel
Я буду показывать на базе Microsoft Office 2021. Для того, чтобы импортировать JSON файл вам необходимо перейти на вкладку "Данные" и нажать кнопку "Получить данные", в открывшемся меню выберите "Из файла - Формат JSON".
С помощью окна проводника укажите путь до JSON файла, после чего нажмите кнопку импорта.
Далее щелкаем правым кликом по столбцу "Список", убедитесь, что тут выбраны все записи. Из контекстного меню выберите пункт "В таблицу".
Вы можете выбрать нужный разделитель, но чаще всего достаточно оставить все как есть и нажать "Ok".
Теперь нажмите значок выбора импортируемых столбцов, я оставлю тут только email, у вас будет своя конфигурация.
Далее я понимаю, что у меня есть дубли в данном столбце, я постараюсь от них избавиться. Для этого щелкаем по столбцу правым кликом и из контекстного меню выберите пункт "Удалить дубликаты".
В результате у меня получился маленький списочек из 20 записей. Теперь нажмите "Закрыть и загрузить".
Поздравляю вас, вы успешно импортировали данные из JSON файла в таблицу Exel с фильтрацией дублей.
Надеюсь, что было не сложно и у вас все получилось. С вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.