XLSX в JSON: конвертация данных и онлайн-конвертер
- Файл XLSX объёмом 1000 строк можно сконвертировать за 2–3 секунды через онлайн-конвертер.
- Python-скрипт с библиотекой openpyxl справляется с любыми вложенными структурами, если правильно настроить шаблон.
- При конвертации часто теряются данные из-за скрытых символов или неправильного выбора разделителя.
- Готовый конвертер XLSX в JSON на сайте даёт результат сразу без программирования и хранит данные локально.
- Почему XLSX в JSON — актуальная задача в 2026 году
- Способ 1: Онлайн-конвертер — для разовой задачи
- Способ 2: Python + openpyxl — для гибкости и автоматизации
- Способ 3: Node.js + xlsx — для веб-разработчиков
- Сравнение подходов: метод, скорость, сложность
- Подводные камни и как их обойти
- Как конвертировать с сохранением вложенной структуры (например, JSON для иерархического меню)
- Что делать, если данные в JSON не читаются или кривые
- Как упростить себе жизнь: полный цикл конвертации таблиц
Почему XLSX в JSON — актуальная задача в 2026 году
Формат JSON — стандарт для обмена данными между веб-сервисами, мобильными приложениями и базами данных. XLSX, хоть и удобен для людей, не является машинно-читаемым в чистом виде. Каждый раз, когда нужно импортировать табель учета, прайс-лист или результаты опроса, возникает необходимость преобразования.
На 2026 год основные причины:
- Интеграция с API: большинство сервисов принимают только JSON или XML.
- Автоматизация: скрипты на Python/JavaScript проще работают с JSON.
- Вес: JSON компактнее XLSX (без форматирования).
Если вам нужно просто быстро перегнать файл — используйте готовый XLSX в JSON. Под капотом — парсер, читающий стили и структуру.
Способ 1: Онлайн-конвертер — для разовой задачи
Лучший вариант, когда не хочется писать код. Просто загружаете XLSX, нажимаете кнопку — получаете JSON. В большинстве конвертеров можно:
- Выбрать лист (если их несколько).
- Указать, с какой строки начинаются данные.
- Настроить имена ключей (первая строка — заголовки).
Пример работы XLSX в JSON:
- Загрузить файл (до 10 МБ).
- Выбрать лист 1.
- Получить ссылку на скачивание готового 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 || ''.
- 1Определите цель
Разово или автоматизация? Выберите метод.
- 2Подготовьте XLSX
Удалите лишние листы, проверьте заголовки.
- 3Выберите инструмент
Онлайн, Python, Node.js — исходя из задачи.
- 4Настройте парсинг
Укажите лист, строку заголовков, кодировку.
- 5Проверьте результат
Откройте JSON, убедитесь в корректности данных.
Сравнение подходов: метод, скорость, сложность
| Метод | Скорость (на 10 000 строк) | Сложность | Гибкость |
|---|---|---|---|
| Онлайн-конвертер | 2–5 сек | Минимальная | Низкая |
| Python openpyxl | 0.5–1 сек | Средняя | Высокая |
| Node.js xlsx | 0.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 не читаются или кривые
Частые проблемы и решения:
- JSON не парсится — проверьте на наличие лишних запятых или незакрытых скобок. Используйте валидатор JSONLint.
- Типы не совпадают: числа приходят как строки — в Python обёртывайте
float(cell)илиint(cell), если уверены. - Кодировка кракозябрами: укажите
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.
Источники и нормативные документы
- openpyxl documentation
- node-xlsx on npm
- MDN JSON guide