Spreadsheet Handling
Spreadsheet Handling is a Python toolkit for round-tripping tabular data between JSON, CSV, and Excel/ODS workbooks while preserving relationships such as foreign keys, indexes, and hierarchies. It is built around small composable pipeline steps configured in YAML so that complex spreadsheet models stay easier to validate, transform, and reimport.
The project is pre-1.0 software. Public behavior is useful for careful adoption, but API and YAML compatibility are still intentionally allowed to change while the domain and metadata model settle.
Install
pip install spreadsheet-handling
Requires Python 3.10 or newer.
Where to go next
- Try it locally in a few minutes — the spreadsheet-handling-demo repository walks you through a first-hour tutorial: generate a workbook from a normalized JSON model, edit it, reimport it, and verify the canonical JSON stays clean.
- Read the user guide (latest release) — https://stefanschade.github.io/spreadsheet-handling-pages/versions/v0.2.1/core/user-guide/.
- Browse documentation by version — https://stefanschade.github.io/spreadsheet-handling-pages/ is the per-release archive portal; it carries the latest-release banner and a list of every published version.
Features
- Convert JSON ↔ CSV/Excel (XLSX) and ODS workbooks 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
License
This project is licensed under the terms of the MIT License. See LICENSE for details.
Release files for spreadsheet-handling 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| spreadsheet_handling-0.2.1.tar.gz | 2.6 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| spreadsheet_handling-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.9 MB
Release files / spreadsheet_handling-0.2.1.tar.gz
| Download URL | spreadsheet_handling-0.2.1.tar.gz |
|---|---|
| Size | 2.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
05fb4f9d2ad741b1d2aec833f85e161b70cf771211e60ed34123a835027f7568
|
|
BLAKE2b-256 checksum How to use checksums |
dd6ac5f5b74814c05811f62902c2639c606bbcc171f88bb1e38d45bd376d5daf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 24, 2026.
Transparency logRelease files / spreadsheet_handling-0.2.1-py3-none-any.whl
| Download URL | spreadsheet_handling-0.2.1-py3-none-any.whl |
|---|---|
| Size | 258.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aab983b9752849b67519d282b6ffe7b9af39a3ba642d241f2b8936d6591a1196
|
|
BLAKE2b-256 checksum How to use checksums |
9d391f2b825050964ae22b926eb7a5986726486984dd518189b4a92302a37bff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 24, 2026.
Transparency log