Skip to content

Features Overview

witqq spreadsheet is a canvas-based spreadsheet engine for the web. This page maps every capability to its documentation.

FeatureDescriptionDocs
Canvas 2D RenderingLayer-based pipeline, 60 FPS at 100K+ rowsRendering
Data ModelSparse CellStore, RowStore, ColStore, StylePoolData Model
Event SystemTyped EventBus with 25+ eventsEvents
ThemesLight/dark themes, runtime switching, full customizationThemes
ArchitectureZero-dependency core, plugin system, framework wrappersArchitecture
FeatureDescriptionDocs
Cell SelectionClick, Shift+click range, Ctrl+click multi-selectSelection
Keyboard NavigationArrow keys, Tab, Enter, Home/End, PageUp/Down, Ctrl+Home/EndSelection
Row/Column SelectionClick row numbers or headers for full row/column selectionSelection
FeatureDescriptionDocs
Inline EditorTextarea overlay, F2/double-click open, Enter/Escape/TabEditing
Undo & Redo100-step command stack, Ctrl+Z / Ctrl+YUndo & Redo
ClipboardCopy/Cut/Paste, TSV + HTML formats, Excel/Sheets interopClipboard
Drag-to-FillPattern detection (numbers, dates, text), merge-awareAutofill
ValidationColumn/cell rules: required, min/max, regex, customValidation
Change TrackingCell status lifecycle: changed → saving → saved, errorChange Tracking
FeatureDescriptionDocs
SortingMulti-column stable sort, type-aware, header click toggleSorting
Filtering14 operators, AND logic, FilterPanel UIFiltering
DataViewLogical↔physical row mapping for sort/filter pipelineDataView
Frozen PanesFreeze rows/columns, 4-region rendering with ImageData cachingFrozen Panes
Cell MergingSpatial index, anchor/hidden cells, merge-aware navigationMerging
Row GroupingParent-child tree, expand/collapse, cascading aggregatesRow Grouping
StreamingpushRows/updateRow/deleteRow, throttle batchingStreaming
Pivot TablesCross-tabulation, 5 aggregate functions, drill-downPivot Tables
PluginDescriptionDocs
Formula EngineCustom tokenizer/parser/evaluator, dependency graph, Web Worker modeFormulas
Custom FunctionsRegister domain-specific functions (e.g. TAX, DISCOUNT)Custom Functions
Conditional FormattingValue rules, gradient scales, data bars, icon setsConditional Format
Excel I/OImport/export via SheetJS (Apache-2.0), lazy-loadedExcel
CollaborationOT engine, WebSocket transport, remote cursorsCollaboration
Progressive LoaderChunked loading with scheduler.yield, progress overlayProgressive Loader
Plugin SystemInstall/remove/dependencies, isolated state, PluginAPIPlugin System
FrameworkDescriptionDocs
ReactWitTable<TRow> component, callbacks, ref API, prop updatesReact
Vue 3Composition API, props/emits/defineExposeVue 3
AngularStandalone component, Input/Output bindingsAngular
Vanilla JS / WidgetIIFE/UMD bundle, WitTable.create(), <36KB gzipWidget
FeatureDescriptionDocs
Performance100K rows default, 1M rows toggle, FPS counter, measureInitTimePerformance
Column/Row ResizeDrag headers/row numbers, min/max constraints, undoableResize
Context MenuRight-click menu, extensible items, keyboard navigationContext Menu
AccessibilityWCAG 2.1 AA, role=grid, aria-live announcementsAccessibility
Print Support@media print CSS, DOM table generation, maxPrintRowsPrint
Cell TypesBuilt-in (string, number, boolean, date) + custom renderersCell Types
PageDescription
WitEngine APIAll public methods on the engine orchestrator
Core TypesCellValue, CellData, CellStyle, ColumnDef, CellRange, etc.
Cell TypesCellTypeRegistry, built-in and custom type renderers