How toucantoco/fastexcel works
FastExcel reads Excel workbooks in Rust and exposes sheet and table data to Rust and Python callers. The main workflow is to open a workbook, select a sheet or named table, configure headers, rows, columns, and types, then convert the resulting data for Arrow-compatible consumers. The README also documents lazy loading and zero-copy PyCapsule exchange, plus optional Polars and Pandas/PyArrow integrations. The map follows the documented workflow and sampled module boundaries; conversion details beyond those excerpts rely on documented capabilities.
Main entry points: excelsheet/mod.rs Sheet loader · exceltable/mod.rs Table loader · excelreader/mod.rs Workbook reader · lib.rs Rust API
Components 20
User APIs
- Python facade
python/fastexcel/__init__.py - Rust API
src/lib.rs
Workbook Access
- Workbook reader
src/types/excelreader/mod.rs - Sheet loader
src/types/excelsheet/mod.rs - Table loader
src/types/exceltable/mod.rs - Defined names
src/types/excelreader/mod.rs
Data Processing
- Load options
src/types/excelreader/mod.rs - Column metadata
src/types/excelsheet/column_info/mod.rs - Type inference
src/types/dtype/mod.rs - Cell extraction
src/data/mod.rs - Typed columns
src/data/mod.rs
Data Interchange
- Arrow exchange
src/types/excelsheet/python.rs - PyCapsule exchange
src/types/excelsheet/python.rs - Polars output
src/types/excelsheet/polars.rs - Pandas output
python/fastexcel/__init__.py
Other components
- Python or Rust caller
- Excel workbook
- Arrow-compatible consumer
- Polars consumer
- Pandas consumer
Connections 27
- Python or Rust caller → Python facade: calls
- Python or Rust caller → Rust API: calls
- Excel workbook → Workbook reader: reads
- Python facade → Rust API: calls native API
- Rust API → Workbook reader: opens workbook
- Workbook reader → Sheet loader: loads sheet
- Workbook reader → Table loader: loads table
- Workbook reader → Defined names: lists names
- Sheet loader → Load options: applies options
- Table loader → Load options: applies options
- Sheet loader → Column metadata: builds metadata
- Table loader → Column metadata: builds metadata
- Column metadata → Type inference: infers types
- Sheet loader → Cell extraction: reads cells
- Table loader → Cell extraction: reads cells
- Cell extraction → Typed columns: extracts values
- Sheet loader → Arrow exchange: exports data
- Table loader → Arrow exchange: exports data
- Sheet loader → PyCapsule exchange: exports zero-copy
- Table loader → PyCapsule exchange: exports zero-copy
- Sheet loader → Polars output: converts data
- Polars output → Polars consumer: returns frame
- Arrow exchange → Arrow-compatible consumer: provides Arrow
- PyCapsule exchange → Arrow-compatible consumer: provides capsule
- Sheet loader → Pandas output: converts data
- Table loader → Pandas output: converts data
- Pandas output → Pandas consumer: returns frame