Learning in public — this reference is being written in the open. Unfinished pages are excluded from search engines.
paged.IDML Reference
The Paged PlatformPlugins

paged.sheet — spreadsheets

The spreadsheet plugin — a Rust/WASM calc engine with spill, structured tables, charts, and XLSX round-trip, lowered to native print-grade tables and editable in-frame.

Tier: IntermediateIntermediateIIexplanation

In short paged.sheet is a full spreadsheet engine in Rust/WASM that lives inside a print layout — a dependency-graph calc engine with dynamic-array spill, structured tables, a chart engine, and preservation-safe XLSX round-trip. It lowers to native <Table> content and is editable in-frame.

What it does

  • Calc engine (dependency graph, dirty recalc, Excel-compatible numerics) with a large registered function library and dynamic-array spill.
  • Structured tables, a chart engine (plotters → a custom drawing backend → frozen chart geometry), and number formatting with locales.
  • XLSX import/export with a byte-faithful preservation invariant.
  • Page-surface lowering to native tables, multi-frame pagination, and an in-frame grid with a modal edit session; consumes governed datasets from paged.data.

How it's built

A Cargo workspace (sheet-core, sheet-parser, sheet-calc, sheet-fn, sheet-xlsx, sheet-lower, sheet-grid, sheet-chart, sheet-js) plus a TS bundle; a coverage gate requires every function to have a test.

Capability state

shipped & verified · shipped, untested · partial · failing · · planned

Plugin · sheet 21 features · 100% green

FeatureShellSheet
Exact-decimal numeric mode (D-6 spike) — seam proven, deferred to v2 opt-in
sheet.calc.decimal
Calculation engine — dependency graph, dirty recalc, f64 numeric core (D-6), coercion, error values
sheet.calc.engine
Iterative (circular) calculation — OFF by default (D-7), converges to a fixed point when enabled
sheet.calc.iterative
Dynamic-array spill (anchor + spill range,
sheet.calc.spill
Charts — plotters-backed custom DrawingBackend → frozen ChartGeometry IR → grid view + paged.draw page lowering
sheet.chart.engine
Data-provider CONSUMER — source a sheet from a governed dataset (host.dataProviders)
sheet.data.consumer
Function library — 224 registered functions across 18 families, registry-driven dispatch
sheet.fn.library
Number-format engine + en/de locale (D-8)
sheet.format.engine
Western-European Latin locale tier (fr/es/it) — display formatting data rows
sheet.format.locale.latin-tier
Frozen panes — parse sheetViews/pane + render frozen rows/columns in-grid
sheet.grid.freeze.render
In-frame grid — sceneLayer render + K-1 modal select/edit (sheets-mode lite)
sheet.grid.inframe
Page-surface lowering — native <Table> + IR-v2 style map + measured column widths
sheet.lower.page
Live multi-frame pagination across the host frame chain
sheet.lower.paginate
paged.sheet bundle (media.paged.sheet) — manifest + activate + 3 panels + 7 commands + importer/exporter + engine boot
sheet.plugin.bundle
Workbook persistence — host.blob (OPFS) + the metadata binding envelope
sheet.plugin.persistence
Excel structured tables / ListObjects — model + structured references + tableN.xml part
sheet.table.structured
Cell comments — preserve opaquely + display (grid indicator + panel list), preserve-first
sheet.xlsx.comments
Conditional formatting — xlsx part fidelity + lowering to style overrides
sheet.xlsx.condfmt
XLSX data validation — preserve byte-faithfully + read-only inventory (NEVER enforced)
sheet.xlsx.data-validation
Pivot tables — preserve-only, NEVER interpreted (publishing-first non-goal)
sheet.xlsx.pivot
XLSX I/O on the fidelity ladder — preservation invariant + import/export through the platform
sheet.xlsx.roundtrip

Recent activity

On this page