
Formualizer
Embeddable spreadsheet engine — parse, evaluate, and mutate Excel workbooks from Rust.
formualizer is the batteries-included entry point for the Formualizer ecosystem. It re-exports the workbook, engine, parser, and SheetPort crates behind feature flags, so you can depend on a single crate and get everything you need.
When to use this crate
This is the recommended default for most Rust integrations. It gives you:
- Workbook API with sheets, values, formulas, undo/redo, and I/O backends
- 320+ Excel-compatible built-in functions
- Formula parsing, tokenization, and pretty-printing
- SheetPort runtime for typed spreadsheet I/O
If you only need a subset, depend on the individual crates directly:
formualizer-parse— parsing onlyformualizer-eval— calculation engine with custom resolversformualizer-workbook— workbook API without SheetPort
Quick start
use Workbook;
use LiteralValue;
let mut wb = new;
wb.add_sheet?;
wb.set_value?;
wb.set_value?;
wb.set_value?;
wb.set_formula?;
let payment = wb.evaluate_cell?;
Feature flags
| Feature | Default | Description |
|---|---|---|
eval |
Yes | Calculation engine and built-in functions |
workbook |
Yes | Workbook API with sheets, undo/redo |
sheetport |
Yes | SheetPort runtime (spreadsheets as typed APIs) |
parse |
Yes | Tokenizer, parser, pretty-printer |
common |
Yes | Shared types (values, errors, references) |
calamine |
No | XLSX/ODS reading via calamine |
umya |
No | XLSX reading/writing via umya-spreadsheet |
json |
No | JSON workbook serialization |
tracing |
No | Performance tracing hooks |
License
Dual-licensed under MIT or Apache-2.0, at your option.