Skip to main content

JSON/JSONL to XLSX converter

Project description

JSON -> XLSX Converter

Конвертер JSON/JSONL файлов в Excel (XLSX).

Возможности

  • Конвертация JSON и JSONL файлов в Excel
  • Автоматическое разбиение больших данных на листы (лимиты Excel)
  • Сортировка и фильтрация данных
  • Подсчёт заполненных ячеек в каждой колонке
  • Автофильтры и закреплённые заголовки
  • Поддержка метаданных Excel-файла
  • Локализация интерфейса (русский/английский)
  • Потоковая обработка больших JSON (с ijson)

Установка

pip install rv-converter

Установка из исходников

git clone https://github.com/ruvn-1fgas/rv-converter.git
cd rv-converter
pip install .

Или

pip install git+https://github.com/ruvn-1fgas/rv-converter.git

Для потоковой обработки больших JSON-файлов:

pip install ijson

Использование

Командная строка

rv_converter data.json                       # output: data.xlsx
rv_converter data.json -o output.xlsx        # указать имя выходного файла
rv_converter data.json -s name               # сортировка по ключу "name"
rv_converter data.json -s name -o out.xlsx   # сортировка + имя файла
rv_converter data.json -j "; "               # разделитель для списков
rv_converter data.json --sort-by name --output result.xlsx  # полные имена

Опции:

  • -o, --output — имя выходного файла
  • -s, --sort-by — ключ для сортировки
  • -j, --join — разделитель для множественных значений
  • -t, --type — формат файла (по умолчанию: xlsx)

Python API

from rv_converter import converter

data = [
    {"name": "Alice", "age": 30},
    {"name": "Bob", "age": 25},
]

# Базовое использование
converter.save_file(data, "output.xlsx")

# С сортировкой по ключу
converter.save_file(data, "output.xlsx", sort_by="name")

# С сортировкой по нескольким ключам
converter.save_file(data, "output.xlsx", sort_by=["age", "name"])

# С пользовательской сортировкой
converter.save_file(data, "output.xlsx", sort_by=lambda x: x["name"].lower())

# С фильтрацией
converter.save_file(
    data, 
    "output.xlsx", 
    filter_function=lambda x: x["age"] > 25
)

# С метаданными файла
converter.save_file(
    data,
    "output.xlsx",
    xlsx_metadata={"title": "Отчёт", "creator": "RV Converter"}
)

Загрузка данных из файла

from rv_converter import converter
from rv_converter.utils import load_data

data = load_data("input.json")  # или input.jsonl
converter.save_file(data, "output.xlsx")

API

converter.save_file()

Параметр Тип Описание
data List[Dict] Список словарей для записи
filename str Путь к выходному файлу
sort_by str | List[str] | Callable Ключ, список ключей или функция сортировки
filter_function Callable[[Dict], bool] Функция фильтрации
join_multivalued str Разделитель для списков (по умолчанию: ", ")
type str Формат файла ("xlsx")
xlsx_metadata Dict[str, Any] Метаданные Excel (title, creator, etc.)

Основные зависимости

Название Ссылка
Python >= 3.11 Ссылка
openpyxl Ссылка
pandas Ссылка
tqdm Ссылка

Лицензия

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rv_converter-2026.2.14.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rv_converter-2026.2.14-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file rv_converter-2026.2.14.tar.gz.

File metadata

  • Download URL: rv_converter-2026.2.14.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for rv_converter-2026.2.14.tar.gz
Algorithm Hash digest
SHA256 cf4a27da7bb5ad57254588bb8ed25cec0c50633757bedce105db5479d8677fea
MD5 b05703453e4b22bf26763be3af6256cf
BLAKE2b-256 6b772adc3ed012946bcb0cbd1f0c8f2bf92ce6b3a6da12a9ca0e39818f7a3b4d

See more details on using hashes here.

File details

Details for the file rv_converter-2026.2.14-py3-none-any.whl.

File metadata

File hashes

Hashes for rv_converter-2026.2.14-py3-none-any.whl
Algorithm Hash digest
SHA256 23e13d1101203ec845619e4cbec371582aa381662ec6f1f486e2d700eeb74d71
MD5 c70482c72b3cac052dd09c83cf95b65b
BLAKE2b-256 32157ee9dd45a4babe131e41099f7a59e41b4e7502a4b31d52837aee47c4b02b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page