Metadata-Version: 2.4
Name: excel-schema-engine
Version: 0.1.2
Summary: Declarative Excel schema builder, reader and validator
License: MIT
License-File: LICENSE
Keywords: excel,openpyxl,schema,validation
Author: Grigorii Perevalov
Author-email: grigoriiperevalov@gmail.com
Requires-Python: >=3.13
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries
Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
Project-URL: Homepage, https://github.com/gperevalov/excel-schema
Project-URL: Issues, https://github.com/gperevalov/excel-schema/issues
Project-URL: Repository, https://github.com/gperevalov/excel-schema
Description-Content-Type: text/markdown

# Excel Schema Engine

A lightweight Python library for generating, validating, and reading Excel files using a declarative schema.

Define your Excel structure once and use it to:

- generate Excel templates
- validate uploaded files
- read rows as structured data
- highlight errors directly in Excel

Built on top of **openpyxl**.

---

## Features

- Declarative Excel schema
- Multi-level headers
- Cell styles and comments
- Excel validation
- Row parsing
- Error highlighting
- Column autosizing
- Localization support

---

### Localization

The validator supports multiple languages for error messages.

You can define your own translations by implementing a custom message mapper in your project.

If you'd like to add a new localization, feel free to open an issue, submit a pull request, or contact the author.

#### Example:

```python
ValidatorErrComment.messages[Language.FR] = {
    "missing_column": "Colonne manquante: {column}"
}
```

---

## Installation

```bash
pip install excel-schema-engine
```
or
```bash
poetry add excel-schema-engine
```

[![PyPI](https://img.shields.io/pypi/v/excel-schema-engine)](https://pypi.org/project/excel-schema-engine/)

![License](https://img.shields.io/badge/license-MIT-blue)
