Конвертер Excel в JSON
Загрузите файл Excel для преобразования данных таблицы в формат JSON
Перетащите файл Excel сюда или нажмите для выбора
Что такое Excel в JSON?
Excel в JSON — это онлайн-инструмент преобразования формата данных, который конвертирует данные электронных таблиц Microsoft Excel (.xlsx/.xls) в формат JSON (JavaScript Object Notation).
Excel — самое популярное программное обеспечение для работы с электронными таблицами в мире, широко используемое для хранения данных, анализа и создания отчётов. JSON — наиболее часто используемый формат обмена данными в современных веб-приложениях и API, известный своей чёткой структурой и простотой разбора.
С помощью этого инструмента вы можете быстро преобразовать данные электронных таблиц Excel в массивы JSON для использования в программировании, анализе данных и веб-разработке. Вся обработка выполняется локально в вашем браузере, что обеспечивает безопасность данных.
Как использовать
Как использовать
- Нажмите на область загрузки или перетащите файл Excel (поддерживаются форматы .xlsx и .xls)
- Если в файле несколько листов, выберите нужный из выпадающего меню
- Выберите, использовать ли первую строку в качестве названий полей JSON
- Отформатированные данные JSON генерируются автоматически и готовы к копированию
Примечания к таблицам
- Перед использованием JSON проверьте выбранный лист, строку заголовков, объединённые ячейки, пустые строки и форматы дат.
- В таблицах форматирование отображения часто смешивается с исходными значениями, поэтому после конвертации проверьте числа и даты.
Применение
Технический принцип
Современные рабочие книги .xlsx — это файлы SpreadsheetML, определённые стандартом ECMA-376 / ISO/IEC 29500 (Office Open XML): расширение .xlsx представляет собой ZIP-контейнер, записи которого — XML-документы в xl/worksheets/sheetN.xml, строки хранятся в таблице общих строк xl/sharedStrings.xml, а типы ячеек объявляются атрибутом t (s = общая строка, n = число, b = логическое, str = встроенная строка, d = дата в ISO 8601). Страница читает загруженный файл через FileReader.readAsArrayBuffer, затем передаёт ArrayBuffer в SheetJS (xlsx). XLSX.read(buffer, {type: 'array'}) возвращает объект рабочей книги, чей массив SheetNames управляет выбором листа, а XLSX.utils.sheet_to_json(sheet, options) обходит сетку ячеек, формируя либо массив объектов (с ключами из строки заголовков), либо массив массивов при header: 1. Устаревший формат .xls — это бинарный BIFF8 (Excel 97-2003), который SheetJS также декодирует через тот же entry point read(), но с type: 'binary' для FileReader.readAsBinaryString или 'array' при чтении байтами. Значения дат в обоих форматах хранятся как серийные номера (дни с начала эпохи 1900 в Excel, с исторической ошибкой високосного года 1900-02-29, сдвигающей даты до 1900-03-01 на один день, или дни с 1904-01-01 при установленном флаге date1904 в Excel для Mac). Преобразование в JavaScript Date: (serial - 25569) * 86400 * 1000 миллисекунд от Unix-эпохи для системы 1900 после учёта ошибки високосного года. Формулы хранятся в атрибуте f, а SheetJS сообщает их последний кэшированный результат в v; если рабочая книга сохранена инструментом без пересчёта (например, при скриптовом экспорте), v может отсутствовать или быть устаревшим. Когда первая строка используется как заголовок, дублирующиеся или пустые ячейки заголовков вынуждают SheetJS пропускать или автоматически переименовывать ключи (например, __EMPTY, __EMPTY_1), что нарушает контракт нижележащего JSON. Диапазоны объединённых ячеек (объявленные в worksheet/mergeCells)отображают значение только в ячейке-якоре верхнего левого угла и выдают undefined в хвостовых ячейках объединения, поэтому объединённая строка заголовков даёт одну заполненную запись, за которой следуют N - 1 записей с пустыми полями. Для рабочих книг размером в десятки мегабайт синхронный путь XLSX.read() может заблокировать поток UI; альтернатива с потоковым разбором — перенести парсинг в Web Worker, чтобы основной поток оставался отзывчивым.
- .xlsx — ZIP-контейнер с XML (ECMA-376 / ISO/IEC 29500); .xls — бинарный формат BIFF8; SheetJS XLSX.read(buffer, {type: 'array'}) обрабатывает оба через FileReader.readAsArrayBuffer.
- Опции sheet_to_json: header: 1 возвращает массив массивов; header: 'A' использует буквы столбцов электронной таблицы; defval: null заполняет разреженные ячейки null вместо удаления ключа; raw: false применяет формат отображения Excel.
- Серийный номер даты Excel — дни с 1900-01-01 (с ошибкой високосного года 1900-02-29; для Mac-системы 1904 — дни с 1904-01-01); JS Date мс = (serial - 25569) * 86400000 от Unix-эпохи.
- Дублирующиеся или пустые ячейки заголовков становятся автоматически переименованными ключами (__EMPTY, __EMPTY_1) или молча конфликтуют; проверяйте JSON на наличие этих строк, прежде чем полагаться на схему.
- Диапазоны объединённых ячеек (worksheet.mergeCells)отображают значение только в ячейке-якоре верхнего левого угла; хвостовые ячейки объединения содержат undefined, поэтому объединённая строка заголовков даёт одну запись со значением и N-1 записей с пустыми полями.
- Ячейки с формулами хранят выражение в f, а последний кэшированный результат в v; инструменты, сохраняющие без пересчёта, оставляют v устаревшим или отсутствующим, а SheetJS возвращает v как есть.
- Перенесите XLSX.read в Web Worker для рабочих книг объёмом более ~10 МБ; синхронный парсинг блокирует requestAnimationFrame и может заморозить вкладку на несколько секунд при больших листах.
Примеры
Лист сотрудников в массив объектов JSON
Строки Excel (лист Staff):
id | name | dept | salary
1 | Alice | Engineering| 8500
2 | Bob | Sales | 6200
Выход JSON:
[
{ "id": 1, "name": "Alice", "dept": "Engineering", "salary": 8500 },
{ "id": 2, "name": "Bob", "dept": "Sales", "salary": 6200 }
]Книга с несколькими листами (orders.xlsx)
Листы книги: ["Customers", "Orders", "Products"]
Выбран лист: Orders
Первая строка используется как заголовки: order_id, customer_id, total, date
Результат: 1284 строки преобразовано в объекты JSON
Пустые ячейки в конце становятся null, а не пустой строкойЯчейка даты Excel в строку ISO 8601
Ячейка A2 (формат «Дата» в Excel): 46173 (серийный номер Excel)
Отображается в Excel: 2026-06-01
Выход JSON:
{ "order_date": "2026-06-01T00:00:00.000Z" }
Примечание: Excel хранит даты как числовые серийные номера; этот инструмент преобразует их в строки ISOЗаголовки с пробелами и китайскими символами
Строка заголовков: "Order No." | "客户姓名" | "金额 (USD)"
Ключи JSON сохраняются дословно:
{
"Order No.": "A-1024",
"客户姓名": "王小明",
"金额 (USD)": 199.50
}Часто задаваемые вопросы
Загружается ли мой Excel-файл?
Нет. Файлы .xlsx, .xls или .csv разбираются в вашем браузере с помощью SheetJS. Байты не покидают устройство. Это можно проверить во вкладке Network при загрузке файла.
Какие возможности Excel сохраняются при конвертации?
Значения ячеек, даты (как ISO-строки или серийные числа Excel в зависимости от настройки), числа, булевы значения и текст. Диаграммы, изображения, условное форматирование, формулы (сохраняется кешированное значение, а не сама формула), комментарии и объединённые ячейки удаляются или упрощаются.
Конвертируются ли все листы?
Конвертируется только выбранный лист. Используйте выпадающий список листов, чтобы выбрать нужный для экспорта. Если нужно несколько листов, конвертируйте их по очереди.
Как заголовки и строки отображаются в JSON?
Если включена опция «первая строка как заголовок», результат — массив объектов, где ключами служат ячейки заголовков. Если выключена — массив массивов значений ячеек. Пустые ячейки превращаются в null в выходе.
Как обрабатываются даты?
Excel хранит даты как серийные числа (дни с 1900 года). Страница по умолчанию преобразует их в строки ISO 8601 (2026-06-13). Переключите в режим «raw», чтобы сохранить серийный номер — это удобно для последующего импорта в Excel. Ячейки только со временем превращаются в строки вида «T14:30:00».
А что с формулами?
Формулы не вычисляются; используется только кешированное вычисленное значение (последнее, сохранённое Excel). Если нужны актуальные результаты формул, откройте файл в Excel, пересчитайте (F9), сохраните и загрузите снова.
Каково ограничение на размер файла?
Ограничивает память браузера. Современные настольные компьютеры справляются с книгами до нескольких сотен МБ. Для очень больших файлов (более 1 млн строк) используйте десктопные инструменты для скриптинга (Python pandas, Excel Power Query) — браузеру не хватит памяти.