Категория

Как экспортировать Excel в JSON: онлайн-инструменты и Python

2026-06-08 06:06:11 zaki zou
AI Summarize:
ChatGPT
ChatGPT
Claude
Grok
Perplexity
Quick
Quick
Concise overview
Highlights
Key takeaways
Detailed
Structured explanation
Brief
One sentence summary
Summarize |

Как экспортировать Excel в JSON

Если вам когда-либо приходилось загружать данные из электронной таблицы в веб-приложение, создавать REST API или мигрировать данные в базу данных NoSQL, вы, вероятно, сталкивались с распространенной проблемой: Excel не предоставляет встроенного способа сохранения данных в формате JSON.

К счастью, существует несколько способов экспортировать Excel в JSON, от быстрых онлайн-конвертеров до программных решений на Python. Лучший метод зависит от размера файла, требований к безопасности и от того, нужно ли вам сохранять структуру рабочей книги, такую как несколько листов или результаты формул.

В этом руководстве мы сравним наиболее практичные подходы и поможем вам выбрать правильное решение для вашего сценария.

Быстрая навигация

  1. Зачем экспортировать Excel в JSON?
  2. Как выглядят данные Excel в формате JSON?
  3. Метод 1: Экспорт Excel в JSON онлайн
  4. Метод 2: Экспорт Excel в JSON на Python с помощью Pandas
  5. Метод 3: Экспорт Excel в JSON на Python с помощью Spire.XLS
  6. Распространенные проблемы при преобразовании Excel в JSON
  7. Какой метод выбрать?
  8. Часто задаваемые вопросы

Зачем экспортировать Excel в JSON?

Excel — это наиболее широко используемый инструмент для хранения структурированных данных, но современные приложения обмениваются данными в формате JSON. Преобразование между этими форматами необходимо всякий раз, когда данные из электронной таблицы должны быть перемещены в веб-контекст.

Типичные сценарии использования включают:

  • Отправка данных из электронных таблиц в веб-приложения
  • Импорт данных в REST API
  • Работа с JavaScript-фреймворками, такими как React, Vue или Angular
  • Миграция данных в базы данных NoSQL, такие как MongoDB
  • Обмен данными между системами в конвейерах интеграции

В Excel нет встроенной опции «Сохранить как JSON», поэтому вам потребуется внешний инструмент или библиотека для преодоления этого разрыва.


Как выглядят данные Excel в формате JSON?

Строки Excel обычно преобразуются в объекты JSON, а заголовки столбцов становятся ключами объектов.

Данные Excel:

Пример данных Excel

Вывод JSON:

[
  {"ID": 1, "Name": "Alice", "Department": "HR"},
  {"ID": 2, "Name": "Bob", "Department": "Engineering"}
]

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


Метод 1: Экспорт Excel в JSON онлайн

Онлайн-конвертеры Excel в JSON предоставляют самое быстрое решение для разовых преобразований, не требуя установки программного обеспечения или знаний программирования.

Шаги по преобразованию Excel в JSON онлайн

  1. Загрузите файл Excel: Выберите файл .xlsx или .xls из локального хранилища. Большинство платформ поддерживают перетаскивание.

  2. Настройте параметры: Укажите, включать ли заголовки, выберите конкретные листы или настройте формат вывода.

  3. Конвертируйте и скачайте: Сервер обрабатывает ваш файл и генерирует вывод JSON. Получите преобразованный файл или скопируйте результат.

Рекомендуемые онлайн-конвертеры Excel в JSON

Различные инструменты хороши в разных сценариях:

Инструмент Лучше всего подходит для Лимит размера файла Специальные возможности
TableConvert Табличные структуры JSON 10 МБ Пользовательский формат JSON, вложенные объекты
Data Formatter Pro Быстрое преобразование в браузере 5 МБ Преобразование на стороне браузера, загрузка не требуется
JSON Editor Online Визуальное редактирование после преобразования 5 МБ Встроенный валидатор и форматер JSON

Преимущества и ограничения

Преимущества:

  • Установка не требуется — доступ из любого браузера
  • Быстро для небольших файлов до 5 МБ
  • Простота для начинающих благодаря графическим интерфейсам

Ограничения:

  • Лимиты размера файла: Большинство бесплатных конвертеров ограничивают загрузку до 5-10 МБ
  • Проблемы конфиденциальности: Загрузка бизнес-данных на внешние серверы создает риски соответствия требованиям
  • Обработка формул: Онлайн-конвертеры экспортируют результаты формул как статические значения
  • Несколько листов: Многие инструменты экспортируют только активный лист или теряют структуру листа

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


Метод 2: Экспорт Excel в JSON на Python с помощью Pandas

Pandas — самая популярная библиотека для анализа данных в Python, предлагающая простое преобразование Excel в JSON через свой API DataFrame. Этот метод подходит для специалистов по данным и аналитиков, которые уже используют Pandas для обработки данных.

Установка Pandas и зависимостей

pip install pandas openpyxl

Для устаревших файлов .xls также установите xlrd:

pip install xlrd

Чтение Excel и экспорт JSON

import pandas as pd

# Загрузка файла Excel в DataFrame
df = pd.read_excel("sales_report.xlsx")

# Экспорт DataFrame в JSON
df.to_json(
    "sales_report.json",
    orient="records",
    indent=4
)

print("Данные Excel успешно экспортированы в JSON")

Ниже приведен пример листа Excel и вывода JSON:

Преобразование Excel в JSON с помощью Pandas

Ключевые параметры:

  • orient="records": Структурирует вывод как массив объектов (наиболее распространенный формат)
  • indent=4: Форматирует JSON с отступом в 4 пробела

Понимание параметров вывода JSON

Pandas предоставляет несколько вариантов ориентации вывода через параметр orient:

orient="records" (Рекомендуется для API):

[
  {"ID": 1, "Name": "Alice", "Department": "HR"},
  {"ID": 2, "Name": "Bob", "Department": "Engineering"}
]

orient="index":

{
  "0": {"ID": 1, "Name": "Alice", "Department": "HR"},
  "1": {"ID": 2, "Name": "Bob", "Department": "Engineering"}
}

orient="split":

{
  "columns": ["ID", "Name", "Department"],
  "index": [0, 1],
  "data": [[1, "Alice", "HR"], [2, "Bob", "Engineering"]]
}

Ориентация records является наиболее совместимым форматом для REST API и приложений JavaScript.

Обработка конкретных листов

import pandas as pd

# Чтение конкретного листа по имени
df = pd.read_excel("workbook.xlsx", sheet_name="Q4_Sales")

# Чтение конкретного листа по индексу (начиная с 0)
df = pd.read_excel("workbook.xlsx", sheet_name=0)

df.to_json("q4_sales.json", orient="records", indent=4)

Pandas отлично подходит для анализа данных, когда вам нужно фильтровать, агрегировать или преобразовывать данные перед экспортом. Однако он загружает целые файлы в память и не может сохранять логику формул, что делает его менее подходящим для больших файлов или корпоративных сценариев.

Преобразование Excel в JSON часто является лишь одним из шагов рабочего процесса обработки данных. Если вам нужно импортировать данные JSON обратно в электронные таблицы, ознакомьтесь с нашим руководством по преобразованию JSON в Excel для полного двустороннего обмена данными.


Метод 3: Экспорт Excel в JSON на Python с помощью Spire.XLS

Spire.XLS для Python предоставляет профессиональную библиотеку для обработки Excel, разработанную для сценариев, где Pandas не справляется. Она обрабатывает сложные структуры рабочих книг, сохраняет расчеты формул и эффективно обрабатывает большие файлы, не загружая целые наборы данных в память.

Установка Spire.XLS для Python

pip install Spire.XLS

Экспорт данных Excel в JSON

from spire.xls import Workbook
import json

# Создание экземпляра рабочей книги
workbook = Workbook()
workbook.LoadFromFile("sales_data.xlsx")

# Получение первого листа
sheet = workbook.Worksheets[0]

# Извлечение данных в структурированный формат
data = []
headers = []

# Чтение заголовков из первой строки
for col in range(sheet.AllocatedRange.Columns.Count):
    cell = sheet.AllocatedRange.Rows[0].Cells[col]
    headers.append(cell.Value)

# Чтение строк данных
for row_idx in range(1, sheet.AllocatedRange.Rows.Count):
    row_data = {}
    row = sheet.AllocatedRange.Rows[row_idx]

    for col_idx in range(len(headers)):
        cell = row.Cells[col_idx]
        row_data[headers[col_idx]] = cell.Value

    data.append(row_data)

# Экспорт в файл JSON
with open("sales_data.json", "w", encoding="utf-8") as f:
    json.dump(data, f, indent=4, ensure_ascii=False)

print(f"Экспортировано {len(data)} записей в JSON")
workbook.Dispose()

Результат преобразования показан ниже:

Преобразование Excel в JSON с помощью Spire.XLS

Ключевые моменты

  • Загрузка рабочей книги: Используйте Workbook.LoadFromFile() для загрузки файла Excel в память. Этот метод поддерживает форматы XLS и XLSX.

  • Доступ к листу: Получите конкретный лист с помощью workbook.Worksheets[index], где индекс 0 относится к первому листу.

  • Извлечение заголовков: Переберите первую строку выделенного диапазона (sheet.AllocatedRange.Rows[0]) для сбора заголовков столбцов, которые будут служить ключами объектов JSON.

  • Чтение строк данных: Пройдитесь по оставшимся строкам (начиная с индекса 1) и извлеките значения ячеек. Для каждой строки создайте словарь, сопоставляющий заголовки со значениями ячеек.

  • Экспорт в JSON: Используйте встроенную функцию json.dump() Python для записи структуры данных в файл JSON с правильным форматированием (indent=4) и поддержкой Unicode (ensure_ascii=False).

JSON — не единственный формат, используемый для обмена данными. Если вам нужен более простой табличный формат для отчетности или интеграции систем, ознакомьтесь с нашим руководством по преобразованию Excel в CSV на Python.

Экспорт нескольких листов в JSON

Одним из ключевых преимуществ Spire.XLS является обработка многолистовых рабочих книг с сохранением структуры:

from spire.xls import Workbook
import json

workbook = Workbook()
workbook.LoadFromFile("quarterly_reports.xlsx")

workbook_data = {}

for sheet_index in range(workbook.Worksheets.Count):
    sheet = workbook.Worksheets[sheet_index]
    sheet_name = sheet.Name

    sheet_data = []
    headers = []

    last_row = sheet.LastRow
    last_col = sheet.LastColumn

    if last_row > 0 and last_col > 0:
        # Чтение заголовков
        for col in range(1, last_col + 1):
            cell_value = sheet.Range[1, col].Value
            headers.append(cell_value if cell_value else f"Column{col}")

        # Чтение строк данных
        for row in range(2, last_row + 1):
            row_data = {}
            has_data = False

            for col in range(1, last_col + 1):
                cell = sheet.Range[row, col]
                value = cell.Value

                # Обработка ячеек с формулами - экспорт вычисленных результатов
                if cell.HasFormula:
                    value = cell.FormulaValue

                row_data[headers[col - 1]] = value
                if value is not None and str(value).strip():
                    has_data = True

            if has_data:
                sheet_data.append(row_data)

    workbook_data[sheet_name] = sheet_data
    print(f"Обработано: {sheet_name} ({len(sheet_data)} строк)")

with open("quarterly_reports.json", "w", encoding="utf-8") as f:
    json.dump(workbook_data, f, indent=4, ensure_ascii=False)

print(f"Экспортировано {workbook.Worksheets.Count} листов в JSON")
workbook.Dispose()

Структура вывода:

{
  "Q1_Sales": [
    {"Product": "Widget A", "Revenue": 15000, "Units": 500},
    {"Product": "Widget B", "Revenue": 22000, "Units": 730}
  ],
  "Q2_Sales": [
    {"Product": "Widget A", "Revenue": 18000, "Units": 600},
    {"Product": "Widget B", "Revenue": 25000, "Units": 830}
  ]
}

Преимущества использования Spire.XLS

  • Сохранение структуры рабочей книги: Сохранение организации листов в выводе JSON
  • Правильная обработка формул: Экспорт вычисленных значений из ячеек с формулами
  • Эффективная обработка памяти: Обработка больших рабочих книг без загрузки целых файлов в память
  • Отсутствие зависимости от Excel: Обработка файлов без необходимости установки Microsoft Excel
  • Кроссплатформенность: Работает на Windows, Linux и macOS

Сравнение Pandas и Spire.XLS

Функция Pandas Spire.XLS
Открытый исходный код
Анализ данных
Результаты формул Ограничено
Несколько листов Базово
Корпоративная автоматизация Ограничено
Эффективность памяти Умеренно
Поддержка больших файлов Ограничено

Для систем, требующих иерархического или основанного на схеме обмена данными, вы также можете узнать, как преобразовать Excel в XML на Python.


Распространенные проблемы при преобразовании Excel в JSON

Несколько листов

Рабочие книги часто содержат несколько связанных листов. Экспорт всех листов как одного плоского массива теряет организационную структуру. Используйте библиотеку, такую как Spire.XLS, чтобы сохранить имена листов в качестве ключей верхнего уровня в выводе JSON.

Ячейки с формулами

Формулы Excel динамически вычисляют значения. При экспорте в JSON вы обычно хотите получить вычисленный результат, а не строку формулы. Spire.XLS предоставляет свойство FormulaValue для экспорта вычисленных значений, в то время как Pandas по умолчанию считывает отображаемые значения.

Форматирование дат

Excel хранит даты как числовые серийные даты. Без явной обработки даты могут экспортироваться как бессмысленные числа, такие как 45662, вместо "2026-05-01". Преобразуйте столбцы дат в строки ISO 8601 для совместимости с JSON.

Пустые ячейки и значения NULL

Пустые ячейки могут быть представлены как null, полностью опущены или экспортированы как пустые строки. Используйте null для отсутствующих значений и пустые строки для явно пустых ячеек, чтобы сохранить намерение данных.


Какой метод выбрать?

Сценарий Рекомендуемый метод Обоснование
Быстрое разовое преобразование Онлайн-конвертер Без настройки, самое быстрое для периодического использования
Рабочие процессы анализа данных Pandas Интегрируется с конвейерами анализа
Сложные рабочие книги с несколькими листами Spire.XLS Сохраняет структуру, обрабатывает формулы
Большие файлы (>100 МБ) Spire.XLS Эффективная обработка памяти
Конфиденциальные/секретные данные Spire.XLS (локально) Без передачи на внешний сервер

Часто задаваемые вопросы

Может ли Excel сохраняться напрямую в JSON?

Нет. Диалоговое окно «Сохранить как» в Excel поддерживает форматы XLSX, XLS, CSV, PDF и XML, но не JSON. Вам потребуется онлайн-конвертер, библиотека Python или пользовательский скрипт для экспорта данных Excel в JSON.

Как экспортировать данные Excel в файл JSON?

Выберите инструмент, загрузите файл Excel, извлеките данные листа, преобразуйте строки в объекты JSON с заголовками столбцов в качестве ключей и запишите вывод в файл .json.

С Pandas:

import pandas as pd
df = pd.read_excel("data.xlsx")
df.to_json("data.json", orient="records", indent=4)

Какая лучшая библиотека Python для преобразования Excel в JSON?

  • Pandas: Лучше всего подходит для рабочих процессов анализа данных с мощными преобразованиями, но загружает целые файлы в память и не может сохранять формулы.
  • Spire.XLS: Лучше всего подходит для корпоративных сценариев с большими файлами, несколькими листами и обработкой формул.

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

Используйте Spire.XLS для перебора листов и их организации в словаре с именами листов в качестве ключей:

from spire.xls import Workbook
import json

workbook = Workbook()
workbook.LoadFromFile("multi_sheet.xlsx")

result = {}
for sheet in workbook.Worksheets:
    sheet_data = []  # Извлечение данных листа
    # ... логика извлечения ...
    result[sheet.Name] = sheet_data

with open("output.json", "w") as f:
    json.dump(result, f, indent=4)

Можно ли сохранить формулы при преобразовании Excel в JSON?

Сами формулы не могут быть сохранены в JSON, поскольку JSON является статическим форматом данных. Однако вы можете экспортировать вычисленные результаты формул. Используйте свойство FormulaValue Spire.XLS для получения вычисленных значений вместо строк формул.

Как обрабатывать большие файлы Excel при экспорте в JSON?

Избегайте Pandas для больших файлов — он загружает все в память. Используйте Spire.XLS для эффективного доступа к ячейкам с низким потреблением памяти. Для очень больших наборов данных рассмотрите формат JSON с разделителями строк (JSONL), где каждая строка является отдельным объектом JSON, что позволяет обрабатывать потоки данных.


Заключение

Экспорт Excel в JSON устраняет разрыв между данными электронных таблиц и современными приложениями. Для быстрых преобразований онлайн-инструменты выполняют работу без какой-либо настройки. Когда вам нужны возможности анализа данных, Pandas предоставляет мощные преобразования. Для корпоративных сценариев с большими файлами, несколькими листами или обработкой формул Spire.XLS обеспечивает необходимый контроль и точность. Выбирайте в зависимости от размера файла, сложности и требований рабочего процесса.

Дополнительное чтение: