Skip to main content

Schema-driven Python library for typed Excel import/export workflows with Pydantic and locale-aware workbooks.

Project description

ExcelAlchemy

Schema-driven Python library for typed Excel import/export workflows with Pydantic and locale-aware workbooks.

ExcelAlchemy turns Pydantic models into typed workbook contracts:

  • generate Excel templates from code
  • validate uploaded workbooks
  • map failures back to rows and cells
  • render workbook-facing output in zh-CN or en
  • keep storage pluggable through ExcelStorage

The current stable release is 2.2.5, which continues the 2.x line with richer import-failure feedback, clearer documentation entry points, stronger examples, and stronger smoke coverage.

GitHub Repository · Full README · Getting Started · Examples Showcase · Architecture · Migration Notes

Screenshots

Template

Excel template screenshot

Import Result

Excel import result screenshot

Install

pip install ExcelAlchemy

Optional Minio support:

pip install "ExcelAlchemy[minio]"

Minimal Example

from pydantic import BaseModel

from excelalchemy import ExcelAlchemy, FieldMeta, ImporterConfig, Number, String


class Importer(BaseModel):
    age: Number = FieldMeta(label='Age', order=1)
    name: String = FieldMeta(label='Name', order=2)


alchemy = ExcelAlchemy(ImporterConfig(Importer, locale='en'))
template = alchemy.download_template_artifact(filename='people-template.xlsx')

excel_bytes = template.as_bytes()

Modern Annotated Example

from typing import Annotated

from pydantic import BaseModel, Field

from excelalchemy import Email, ExcelAlchemy, ExcelMeta, ImporterConfig


class Importer(BaseModel):
    email: Annotated[
        Email,
        Field(min_length=10),
        ExcelMeta(label='Email', order=1, hint='Use your work email'),
    ]


alchemy = ExcelAlchemy(ImporterConfig(Importer, locale='en'))
template = alchemy.download_template_artifact(filename='people-template.xlsx')

Example Outputs

These fixed outputs are generated from the repository examples by scripts/generate_example_output_assets.py.

Import workflow:

Employee import workflow completed
Result: SUCCESS
Success rows: 1
Failed rows: 0
Result workbook URL: None
Created rows: 1
Uploaded artifacts: []

Export workflow:

Export workflow completed
Artifact filename: employees-export.xlsx
Artifact bytes: 6893
Upload URL: memory://employees-export-upload.xlsx
Uploaded objects: ['employees-export-upload.xlsx']

Full captured outputs:

For a single GitHub page that combines screenshots, representative workflows, and captured outputs, see the Examples Showcase.

Why ExcelAlchemy

  • Pydantic v2-based schema extraction and validation
  • locale-aware workbook comments and result workbooks
  • pluggable storage instead of a hard-coded backend
  • openpyxl-based runtime path without pandas
  • contract tests, Ruff, and Pyright in the development workflow

Learn More

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

excelalchemy-2.2.5.tar.gz (59.0 kB view details)

Uploaded Source

Built Distribution

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

excelalchemy-2.2.5-py3-none-any.whl (87.1 kB view details)

Uploaded Python 3

File details

Details for the file excelalchemy-2.2.5.tar.gz.

File metadata

  • Download URL: excelalchemy-2.2.5.tar.gz
  • Upload date:
  • Size: 59.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for excelalchemy-2.2.5.tar.gz
Algorithm Hash digest
SHA256 2b752f5eb545ce57d20088d3ddb5a5b4033a64f8a1943547f8828eb983790fcd
MD5 98940995aba5554e7b40452f249c93cc
BLAKE2b-256 6088761eb3e2551981d63da48d0409f85037f826a55223127454af213ed91453

See more details on using hashes here.

Provenance

The following attestation bundles were made for excelalchemy-2.2.5.tar.gz:

Publisher: python-publish.yml on RayCarterLab/ExcelAlchemy

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

File details

Details for the file excelalchemy-2.2.5-py3-none-any.whl.

File metadata

  • Download URL: excelalchemy-2.2.5-py3-none-any.whl
  • Upload date:
  • Size: 87.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for excelalchemy-2.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 56466b2d30a8baecf6933639107c48d3ea31253f7992f669558a71f97651e9e4
MD5 7fbf9d486d1c2be7f3e8fbb7306e5a10
BLAKE2b-256 9e0e5cfe5217a633fec004cfe9954c2c06d3bc39230846292bbf67d3f29111e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for excelalchemy-2.2.5-py3-none-any.whl:

Publisher: python-publish.yml on RayCarterLab/ExcelAlchemy

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