Show HN: Formualizer – Arrow-backed spreadsheet engine, 320 functions,PyO3+WASM

  • Posted 10 hours ago by ManfredMacx
  • 2 points
https://github.com/psu3d0/formualizer
Formualizer is a spreadsheet engine written in Rust: parse Excel formulas, track dependencies, evaluate with 320+ functions, mutate workbooks, undo/redo. Python bindings via PyO3, WASM for the browser. MIT/Apache-2.0.

The original motivation was server-side formula evaluation in Python. openpyxl reads and writes xlsx well but evaluates nothing - formula cells return None unless Excel cached values on last save. xlcalc actually evaluates but covers around 50 functions. If you needed XLOOKUP, SUMIFS with multiple criteria, IRR, XIRR, or dynamic arrays like FILTER and UNIQUE, you were either installing Excel on a Linux box or accepting the gaps.

There's a one-liner for the common case:

    import formualizer as fz
    fz.recalculate_file("model.xlsx", output="recalculated.xlsx")
Or drive it programmatically — load a workbook, change inputs, evaluate:

    wb = fz.load_workbook("model.xlsx")
    wb.set_value("Assumptions", 3, 2, 0.08)
    wb.evaluate_all()
    print(wb.evaluate_cell("Summary", 5, 3))  # =IRR(...)
You can also register Python callbacks as first-class formula functions that participate in the dependency graph.

The Rust and WASM targets are also fully supported - the engine is the core with Python, WASM, and a stable CFFI as targets.

Formal benchmarks are in progress!

Docs: https://www.formualizer.dev/docs

1 comments

    Loading..