Metadata-Version: 2.4
Name: urban-json-excel
Version: 0.1.0
Summary: Plugin urban-json : lecture de classeurs Excel (loadxls, loadxlssheet).
Author-email: Gael Beard <gaelgael5@gmail.com>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/gaelgael5/Jslt
Project-URL: Repository, https://github.com/gaelgael5/Jslt
Keywords: json,transform,template,jslt,excel,plugin
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
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: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: urban-json
Requires-Dist: openpyxl>=3.1
Provides-Extra: xls
Requires-Dist: xlrd>=2.0; extra == "xls"
Dynamic: license-file

# urban-json-excel

Plugin [urban-json](https://github.com/gaelgael5/Jslt) : **classeurs Excel** dans les
templates (port de `ServicesXls` / `ExcelReader`, .NET).

```bash
pip install urban-json-excel          # .xlsx (openpyxl)
pip install "urban-json-excel[xls]"   # + anciens .xls (xlrd)
```

- `loadxls(classeur, "config.json")` — configuration lue dans un fichier JSON ;
- `loadxlssheet(classeur, { … })` — configuration passée en objet.

```json
{ "FirstRowHasColumnName": true, "HeaderLine": 0, "Tablename": "Feuil1",
  "AddRowNumber": true, "ByPassEmptyObject": true,
  "Columns": [ { "Index": 0, "Name": "id", "Type": "integer", "Trimmed": true, "BypassEmptyValue": true } ] }
```

Chaque ligne devient un objet (`"$row"` = rang de la ligne de données si
`AddRowNumber`). Sans `Columns`, toutes les colonnes sont lues, noms assainis
(`"Nom complet"` → `Nom_complet`) et colonnes entièrement entières typées `integer`.
Si `Tablename` est vide, la feuille unique du classeur est prise.
