v0.33.0

A spreadsheet,
built from scratch.

Tabula is a desktop spreadsheet written in pure Rust — no UI toolkit, no browser, no web view. It opens, edits, and saves Excel .xlsx files, and runs Python right in a cell.

Download Tabula

Free · macOS · MIT or Apache-2.0

Download

One desktop app — nothing to sign in to, no account, no telemetry.

macOS

Apple silicon & Intel

Universal · signed and notarized
Tabula-0.33.0.pkg

Download
Windows

64-bit

Not published yet

Not yet available

Installing

  • macOS — open the .pkg and follow the installer. The app is signed with a Developer ID and notarized by Apple, so it opens without a Gatekeeper warning.
  • Updates — Tabula keeps itself current. It checks on launch, downloads in the background, verifies the checksum, and swaps itself in after you quit. Nothing to click.

Windows and Linux builds aren't published yet. Tabula is pre-release software under active development — keep backups of files that matter.

What's inside

Real .xlsx

Reads the OPC relationship graph rather than guessing at file paths, so workbooks from Excel, LibreOffice, Numbers and Google Sheets all open. Saving regenerates a clean, spec-valid package: styles, merged cells, tables, filters, notes and rich text all round-trip.

Formulas that behave

A dependency-aware engine with circular-reference detection, cross-sheet references, named ranges, structured table references like Table1[Amount], and absolute anchors — $A$1, $A1, A$1, with F4 to cycle them.

Python in a cell

A from-scratch Python interpreter — no CPython, no bindings. Write functions in the Developer panel and call them like any formula, or inline an expression with =py A1 * 2. Macros can read and write cells across sheets.

Tables, sorting, filtering

Turn a range into a named table with banded rows, a totals row that recalculates to the visible rows through SUBTOTAL, and a filter checklist on every header. Sort moves whole rows and re-anchors their formulas.

Formatting down to the character

Fonts, colours, borders, alignment, wrapping, and full Excel number format codes. Rich text goes further: bold one word, colour another, inside a single cell — and it survives the round trip to .xlsx.

No UI toolkit

The interface is an immediate-mode GUI written for this app, drawn by a wgpu renderer with cosmic-text shaping. No Electron, no GTK, no Qt — and no C dependencies, which is what keeps the build honest.