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 converting 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.

This project is still beta. The main user entry point is the spreadsheet-handling-demo repository, which contains the runnable prototype integration. Published documentation is available at stefanschade.github.io/spreadsheet-handling-pages; it is being expanded gradually.


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

Run a configurable pipeline:

sheets-run --config sheets.yaml --profile demo

Try the reference shortcut commands:

sheets-example-json-to-xlsx examples/json -o demo.xlsx
sheets-example-xlsx-to-json demo.xlsx -o demo_out

Run full test suite:

make test

AI Usage & Position Statement

  • AI tools are used at all levels of this project: requirement analysis, solution design, coding.
  • Human oversight, testing, and review remain essential. AI augments reasoning and speed but does not replace engineering judgment.
  • Quality and maintainability are goals treated with priority; AI contributes to these.

Industry trends support this approach: according to the JetBrains Developer Ecosystem 2025 survey published by Golem.de, AI adoption is already pervasive and considered a core competency.

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.0b6.tar.gz (1.2 MB 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.0b6-py3-none-any.whl (187.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: spreadsheet_handling-0.1.0b6.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for spreadsheet_handling-0.1.0b6.tar.gz
Algorithm Hash digest
SHA256 c2e016c12685b378fdbe785c352e02553a2760ed1045d3e12d0149e9be9935df
MD5 40936ddfa911eeee675426e26e5234a1
BLAKE2b-256 1d8442fc6e736d207a753aeb7f38cd9c136f4b69ff73e468b87caacdc5d52f5a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for spreadsheet_handling-0.1.0b6-py3-none-any.whl
Algorithm Hash digest
SHA256 c37f79c6bfd6db9df42b574f831e128c37f9eaae46cf8457089ea850ad9fc302
MD5 0c810a95c728bf87838aab55e23cfc8b
BLAKE2b-256 e90d4395cb25010b0aacf1701bfca7b213238bea975eb9bcd04655cf514e897b

See more details on using hashes here.

Provenance

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