formualizer 0.3.3

Formualizer product surface (roll-up): workbook + engine + SheetPort, feature-gated
Documentation

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:

Quick start

use formualizer_workbook::Workbook;
use formualizer_common::LiteralValue;

let mut wb = Workbook::new();
wb.add_sheet("Sheet1")?;

wb.set_value("Sheet1", 1, 1, LiteralValue::Number(1000.0))?;
wb.set_value("Sheet1", 2, 1, LiteralValue::Number(0.05))?;
wb.set_value("Sheet1", 3, 1, LiteralValue::Number(12.0))?;
wb.set_formula("Sheet1", 1, 2, "=PMT(A2/12, A3, -A1)")?;

let payment = wb.evaluate_cell("Sheet1", 1, 2)?;

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.