Skip to main content

Composable pipelines for spreadsheets (JSON/YAML/CSV/XLSX) with FK helpers, validation, and IO routing.

Project description

Spreadsheet Handling

Spreadsheet Handling is a Python toolkit for packing/unpacking and orchestrating tabular data.
It converts between JSON, CSV, and Excel (XLSX/ODS) while preserving relationships such as foreign keys, indexes, and hierarchies.
The goal is to make complex spreadsheet models easier to validate, transform, and round-trip into structured formats.


Features

  • Convert JSON ↔ CSV/Excel with round-tripping support
  • Detect and enforce foreign key relationships
  • Validate spreadsheet structures (naming rules, uniqueness, etc.)
  • Orchestrate multi-sheet pipelines via YAML configs
  • Extensible: plug in new backends and transformation steps

Installation

# clone repo
git clone https://github.com/StefanSchade/spreadsheet-handling.git
cd spreadsheet-handling

# set up environment
make setup

Usage

Pack JSON into Excel:

sheets-pack examples/roundtrip_start.json -o demo.xlsx --levels 3

Unpack Excel back into JSON:

sheets-unpack demo.xlsx -o demo_out --levels 3

Run full test suite:

make test

License

This project is licensed under the terms of the MIT License. See LICENCE for details.

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

spreadsheet_handling-0.1.0b4.tar.gz (82.5 kB view details)

Uploaded Source

Built Distribution

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

spreadsheet_handling-0.1.0b4-py3-none-any.whl (41.8 kB view details)

Uploaded Python 3

File details

Details for the file spreadsheet_handling-0.1.0b4.tar.gz.

File metadata

  • Download URL: spreadsheet_handling-0.1.0b4.tar.gz
  • Upload date:
  • Size: 82.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spreadsheet_handling-0.1.0b4.tar.gz
Algorithm Hash digest
SHA256 9af9d00ae8dd4c2de0bda1be8a4487df95ccca64a076059599146ff173e97799
MD5 c1719d0677cec67277581a9d1ebe8c8f
BLAKE2b-256 c65208691d3cc6d1224ad05c3ad2914b21902c897cc08a12ea0dfd6a1558ef43

See more details on using hashes here.

Provenance

The following attestation bundles were made for spreadsheet_handling-0.1.0b4.tar.gz:

Publisher: release.yml on StefanSchade/spreadsheet-handling

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spreadsheet_handling-0.1.0b4-py3-none-any.whl.

File metadata

File hashes

Hashes for spreadsheet_handling-0.1.0b4-py3-none-any.whl
Algorithm Hash digest
SHA256 85e38ded030dbee4d9ce2952742726940d0a231b29d9324b8fa96df56d89aacd
MD5 b696cbb88beb2f5ad918a046bf42a1be
BLAKE2b-256 5c4b3b8aa7e282b533f729c0e8cdabdd1fba9e7a46b92962a78e542b3489751f

See more details on using hashes here.

Provenance

The following attestation bundles were made for spreadsheet_handling-0.1.0b4-py3-none-any.whl:

Publisher: release.yml on StefanSchade/spreadsheet-handling

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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