wolfxl-core 0.8.0

Pure-Rust reader for xlsx/xls/xlsb/ods/csv with Excel number-format-aware cell rendering. Backs the wolfxl-cli previewer.
Documentation
# wolfxl-core

[![crates.io](https://img.shields.io/crates/v/wolfxl-core.svg)](https://crates.io/crates/wolfxl-core)
[![docs.rs](https://docs.rs/wolfxl-core/badge.svg)](https://docs.rs/wolfxl-core)

Pure-Rust spreadsheet reader with Excel number-format-aware cell rendering. Backs the
[`wolfxl-cli`](https://crates.io/crates/wolfxl-cli) previewer.

```toml
[dependencies]
wolfxl-core = "0.8"
```

```rust
use wolfxl_core::Workbook;

let mut wb = Workbook::open("examples/sample-financials.xlsx")?;
let sheet = wb.first_sheet()?;
let (rows, cols) = sheet.dimensions();
println!("{} rows x {} columns", rows, cols);
# Ok::<_, wolfxl_core::Error>(())
```

## Scope

- **In scope today**: read xlsx / xls / xlsb / ods / csv values, extract
  best-effort number-format strings for primary OOXML paths via
  [`calamine-styles`] and the `xl/styles.xml` cellXfs walker fallback,
  classify formats into `FormatCategory`, render via `format_cell`, map
  workbook structure, and infer per-column schema/cardinality summaries.
- **Not yet**: write side.

The PyO3 layer in the sibling [`wolfxl`](https://pypi.org/project/wolfxl/)
PyPI package still owns its own xlsx implementation; unifying the two is
follow-up work.

## Exports

- `Workbook`, `Sheet`, `Cell`, `CellValue`
- `format_cell`, `FormatCategory`
- `classify_sheet`, `WorkbookMap`, `SheetMap`, `SheetClass`
- `infer_sheet_schema`, `SheetSchema`, `ColumnSchema`, `InferredType`, `Cardinality`

## License

MIT