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.0b3.tar.gz (65.4 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.0b3-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: spreadsheet_handling-0.1.0b3.tar.gz
  • Upload date:
  • Size: 65.4 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.0b3.tar.gz
Algorithm Hash digest
SHA256 0da8db67e710acc84813f31cd991ca6e3e4faed4f6b230e704ad7cbb8f3351f1
MD5 c87c94220073e1216b30ffffc3837612
BLAKE2b-256 675a75b6da4c7a2e26316792765f46ac6c882de441120d38b8cbdce2d8cf559d

See more details on using hashes here.

Provenance

The following attestation bundles were made for spreadsheet_handling-0.1.0b3.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.0b3-py3-none-any.whl.

File metadata

File hashes

Hashes for spreadsheet_handling-0.1.0b3-py3-none-any.whl
Algorithm Hash digest
SHA256 b592881606ed817dd61efd10a262d8c40df3d260dee375838c26ff595cbd9c63
MD5 04c3dea4b554109c23c6296fd209996d
BLAKE2b-256 b7d6a1ba6150c40cff580c56f8a9feac574e19e11f393972e5ebc7634b4d988b

See more details on using hashes here.

Provenance

The following attestation bundles were made for spreadsheet_handling-0.1.0b3-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