Expand description
Headless spreadsheet engine for RavenRS.
The layers, from the bottom up:
base: cell addresses, values, errors, date serials and input parsing.numfmt: number format codes, General display andTEXT().formula: the formula language: lexer, parser, printer and reference adjustment.functions: the worksheet function library.math: equations laid out from LaTeX, and their OMML form for XLSX.model: workbooks, sheets, copy-on-write cells, styles, tables and charts.calc: dependency graph, recalculation and dynamic arrays.xlsx: XLSX and CSV import and export.chart: chart data and layout into toolkit-free primitives, and sparklines.pdf: a small PDF writer for printing sheets.engine: sessions: every action is a command with an id and JSON parameters, with undo, clipboard, fill, sort and filter.
Nothing here draws or depends on a window, so it also runs on servers and in WebAssembly.
The engine comes from GridCraft (MIT OR Apache-2.0); see NOTICE.
Modules§
- base
- GridCraft core types: cell addresses, values and Excel’s coercion rules, error values, date serials and typed-input parsing. No dependencies on the rest of the workspace.
- calc
- GridCraft’s calculation engine: the evaluator (references, names, tables, LET/LAMBDA, dynamic arrays) and dependency-driven recalculation with spills and cycle detection.
- chart
- GridCraft charts (layer L3, toolkit-free).
- engine
- The GridCraft engine façade.
- formula
- The Excel formula language: tokenizer, parser, syntax tree, printer (A1 and R1C1) and reference adjustment for copy/fill and structural edits.
- functions
- GridCraft worksheet function library.
- math
- GridCraft equations. LaTeX source is laid out by RaTeX (
ratex-parser,ratex-layout; MIT) into aMathList: plain glyph, rule and path data that the UI and the PDF writer paint without calling RaTeX again. - model
- The GridCraft document model: workbooks, sheets, a copy-on-write cell store, interned
styles, defined names, tables, conditional formats, validation, comments, charts and print
settings. Pure data; calculation lives in
gridcraft-calc. - numfmt
- GridCraft number formats: Excel format codes (
#,##0.00;[Red](#,##0.00), dates, fractions, scientific…), the General display format and theTEXT()worksheet function. en-US only. - A tiny, self-contained PDF 1.7 writer for GridCraft’s print and PDF export.
- xlsx
- GridCraft file formats: XLSX (transitional and strict) and CSV import/export, plus XLSB and ODS data import
and legacy Excel 97-2003
.xls(BIFF8) import, and password-encrypted workbooks (Agile and Standard encryption).