XLSX в JSON: конвертация данных и онлайн-конвертер

💻 IT и кодОбновлено: 13 июля 2026 г.4 мин чтения
Вручную копировать данные из Excel в JSON-формат — терять часы и делать ошибки. Разберём, как конвертировать XLSX в JSON быстро и без потерь: от готовых онлайн-инструментов до скриптов под любую задачу.
⚡ Коротко: главное
  • Файл XLSX объёмом 1000 строк можно сконвертировать за 2–3 секунды через онлайн-конвертер.
  • Python-скрипт с библиотекой openpyxl справляется с любыми вложенными структурами, если правильно настроить шаблон.
  • При конвертации часто теряются данные из-за скрытых символов или неправильного выбора разделителя.
  • Готовый конвертер XLSX в JSON на сайте даёт результат сразу без программирования и хранит данные локально.

Почему XLSX в JSON — актуальная задача в 2026 году

Формат JSON — стандарт для обмена данными между веб-сервисами, мобильными приложениями и базами данных. XLSX, хоть и удобен для людей, не является машинно-читаемым в чистом виде. Каждый раз, когда нужно импортировать табель учета, прайс-лист или результаты опроса, возникает необходимость преобразования.

На 2026 год основные причины:

  • Интеграция с API: большинство сервисов принимают только JSON или XML.
  • Автоматизация: скрипты на Python/JavaScript проще работают с JSON.
  • Вес: JSON компактнее XLSX (без форматирования).

Если вам нужно просто быстро перегнать файл — используйте готовый XLSX в JSON. Под капотом — парсер, читающий стили и структуру.

Способ 1: Онлайн-конвертер — для разовой задачи

Лучший вариант, когда не хочется писать код. Просто загружаете XLSX, нажимаете кнопку — получаете JSON. В большинстве конвертеров можно:

  • Выбрать лист (если их несколько).
  • Указать, с какой строки начинаются данные.
  • Настроить имена ключей (первая строка — заголовки).

Пример работы XLSX в JSON:

  1. Загрузить файл (до 10 МБ).
  2. Выбрать лист 1.
  3. Получить ссылку на скачивание готового JSON.

Подводные камни:

Цифры с лидирующими нулями (например, 00123) могут потерять нули — в XLSX это текст, а конвертер воспринимает как число. Решение: перед конвертацией явно задайте ячейкам текстовый формат в Excel.

Способ 2: Python + openpyxl — для гибкости и автоматизации

Когда нужно обрабатывать файлы регулярно или менять структуру JSON (например, вкладывать одни поля в другие), пишем скрипт на Python. Установите библиотеку openpyxl (не путайте с xlrd — она устарела).

Базовый пример:

import openpyxl, json

wb = openpyxl.load_workbook('data.xlsx')
sheet = wb.active

data = []
headers = [cell.value for cell in sheet[1]]  # первая строка — ключи

for row in sheet.iter_rows(min_row=2, values_only=True):
    data.append(dict(zip(headers, row)))

with open('output.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

Объяснение:

  • Загружаем активный лист.
  • Первую строку считаем заголовками.
  • Каждую следующую строку превращаем в объект.
  • Сохраняем как UTF-8 с отступами.

Когда нужно больше контроля — используйте wb[sheet_name] для выбора листа, max_row и max_column для динамики.

Способ 3: Node.js + xlsx — для веб-разработчиков

Если ваш стек JavaScript, библиотека node-xlsx (или xlsx) отлично справляется. Установите через npm:

const xlsx = require('node-xlsx');
const fs = require('fs');

const sheets = xlsx.parse('data.xlsx');
const data = sheets[0].data;

const headers = data[0];
const rows = data.slice(1).map(row => {
  let obj = {};
  row.forEach((cell, i) => { obj[headers[i]] = cell; });
  return obj;
});

fs.writeFileSync('output.json', JSON.stringify(rows, null, 2));

Особенности:

  • Парсер возвращает массив массивов — сами формируете ключи.
  • Даты могут прийти в виде числа (серийный номер Excel) — потребуется конвертация.

Edge-case: если в ячейке null, а вы ожидаете строку — обработайте через cell || ''.

Как сконвертировать XLSX в JSON за 5 шагов
  1. 1
    Определите цель

    Разово или автоматизация? Выберите метод.

  2. 2
    Подготовьте XLSX

    Удалите лишние листы, проверьте заголовки.

  3. 3
    Выберите инструмент

    Онлайн, Python, Node.js — исходя из задачи.

  4. 4
    Настройте парсинг

    Укажите лист, строку заголовков, кодировку.

  5. 5
    Проверьте результат

    Откройте JSON, убедитесь в корректности данных.

Универсальная последовательность для любого способа

Сравнение подходов: метод, скорость, сложность

МетодСкорость (на 10 000 строк)СложностьГибкость
Онлайн-конвертер2–5 секМинимальнаяНизкая
Python openpyxl0.5–1 секСредняяВысокая
Node.js xlsx0.3–0.7 секСредняяВысокая
PowerShell (COM-объект)5–10 секВысокаяСредняя

Различия существенны только при объёмах свыше 100 000 строк — онлайн может подвисать.

Чек-лист: Конвертация XLSX в JSON без ошибок

0 из 6

Подводные камни и как их обойти

  • Потеря форматирования: JSON не хранит шрифты, цвета, объединённые ячейки. Совет: перед конвертацией удалите лишнее форматирование или экспортируйте в CSV.
  • Скрытые символы: неразрывные пробелы, переносы строк внутри ячейки ломают JSON. В Python используйте str.strip().
  • Многоуровневые заголовки: если заголовок объединён по строкам, конвертер может выдать null. Решение: вручную задать ключи второй строкой.
  • Спецсимволы в заголовках: кавычки и точки приведут к невалидному JSON. Исправляйте через замену.

Для быстрой очистки данных рекомендую сначала конвертировать в CSV через XLSX в CSV, а затем из CSV в JSON — это проверенный путь.

Как конвертировать с сохранением вложенной структуры (например, JSON для иерархического меню)

Если исходная таблица содержит колонки "категория" и "подкатегория", нужно получить вложенные объекты.

Пример на Python:

import openpyxl, json

wb = openpyxl.load_workbook('menu.xlsx')
sheet = wb.active
data = []
tree = {}

for row in sheet.iter_rows(min_row=2, values_only=True):
    cat, subcat, item = row
    tree.setdefault(cat, {})
    tree[cat].setdefault(subcat, [])
    tree[cat][subcat].append(item)

with open('menu.json', 'w') as f:
    json.dump(tree, f, ensure_ascii=False, indent=2)

Такой подход вручную не масштабируется — лучше сразу использовать готовый парсер с возможностью кастомных трансформаций.

Что делать, если данные в JSON не читаются или кривые

Частые проблемы и решения:

  1. JSON не парсится — проверьте на наличие лишних запятых или незакрытых скобок. Используйте валидатор JSONLint.
  2. Типы не совпадают: числа приходят как строки — в Python обёртывайте float(cell) или int(cell), если уверены.
  3. Кодировка кракозябрами: укажите encoding='utf-8' при записи файла.

Для быстрой диагностики выведите первые 3 записи в консоль.

Как упростить себе жизнь: полный цикл конвертации таблиц

На нашем сайте вы можете выполнить всю цепочку преобразований без программирования:

  • Сначала XLSX в CSV — если нужно промежуточное форматирование.
  • Затем CSV в JSON — для чистового результата.
  • Или наоборот: если у вас JSON, конвертируйте его в CSV для анализа в Excel — JSON в CSV.
  • Если исходник CSV и нужно XLSX — используйте CSV в XLSX.

Все инструменты работают в браузере, данные не уходят на сервер.

🧮 Посчитайте сами — инструменты по теме

🧭 Разделы по теме

Частые вопросы

Как конвертировать XLSX в JSON бесплатно?

Используйте онлайн-конвертер на нашем сайте: загрузите XLSX, скачайте JSON. Бесплатно, без регистрации, до 10 МБ.

Как конвертировать XLSX в JSON через Python?

Установите библиотеку openpyxl, загрузите файл, прочитайте строки и сохраните как JSON. Пример кода приведён в статье.

Потеряются ли формулы при конвертации XLSX в JSON?

Да, формулы не переносятся — конвертируется только результат вычисления. Чтобы сохранить формулу, сначала замените её на значение.

Как сохранить форматирование (цвета, шрифты) при конвертации XLSX в JSON?

Никак. JSON хранит только данные. Если нужно сохранить стили, экспортируйте в HTML или используйте XLSX как есть.

Как конвертировать XLSX в JSON с несколькими листами?

В онлайн-конвертере выберите нужный лист. В Python используйте wb.sheetnames для перебора листов.

Почему при конвертации XLSX в JSON даты отображаются как числа?

Excel хранит даты как количество дней от 01.01.1900. Преобразуйте через библиотеку (например, xlrd) или установите формат ячеек как текст.

Как конвертировать XLSX в JSON онлайн без загрузки на сервер?

Наш конвертер работает в браузере на JavaScript — файл не покидает ваш компьютер. Используйте раздел XLSX в JSON.

Источники и нормативные документы

  1. openpyxl documentation
  2. node-xlsx on npm
  3. MDN JSON guide

Ещё по теме «IT и код»