Skip to content

WitEngine API

WitEngine is the central orchestrator that creates and wires all subsystems. It is the single entry point for programmatic control of the spreadsheet.

import { WitEngine } from '@witqq/spreadsheet';
const engine = new WitEngine({
columns,
data,
editable: true,
theme: lightTheme,
});
engine.mount(document.getElementById('grid')!);
MethodSignatureDescription
mount(container: HTMLElement) => voidMount engine into DOM container, create canvas, attach events
destroy() => voidDestroy engine, remove canvas, detach all event listeners
render() => voidForce immediate re-render of the entire canvas
requestRender() => voidSchedule re-render on next animation frame
MethodSignatureDescription
getCell(row, col) => CellData | undefinedGet cell data at logical row/col
setCell(row, col, value) => voidSet cell value at logical row/col
getCellStore() => CellStoreAccess the underlying CellStore
MethodSignatureDescription
setCellStatus(row, col, status, errorMessage?) => voidSet cell tracking status
getCellStatus(row, col) => CellMetadata['status'] | undefinedGet cell tracking status
getChangedCells() => Array<{row, col}>Get all cells with ‘changed’ status
getChangeTracker() => ChangeTrackerAccess the ChangeTracker instance
MethodSignatureDescription
getRowStore() => RowStoreAccess RowStore for row heights
setRowHeight(row, height) => voidSet a specific row height
getLayoutEngine() => LayoutEngine | nullAccess cumulative position arrays
MethodSignatureDescription
getSelection() => SelectionGet current selection state
getSelectionManager() => SelectionManagerAccess SelectionManager
getKeyboardNavigator() => KeyboardNavigator | nullAccess keyboard navigation
MethodSignatureDescription
getCommandManager() => CommandManagerAccess undo/redo stack
MethodSignatureDescription
getSortColumns() => readonly SortColumn[]Get current sort state
getSortEngine() => SortEngineAccess SortEngine
MethodSignatureDescription
setColumnFilter(col, conditions) => voidSet filter on column
removeColumnFilter(col) => voidRemove filter from column
clearFilters() => voidRemove all filters
getFilteredRowCount() => numberNumber of visible rows after filtering
getFilterEngine() => FilterEngineAccess FilterEngine
openFilterPanel(col) => voidOpen filter panel UI for column
closeFilterPanel() => voidClose filter panel
isFilterPanelOpenboolean (getter)Whether filter panel is open
MethodSignatureDescription
mergeCells(region, value?) => booleanMerge cells in region (false if invalid)
unmergeCells(startRow, startCol) => booleanUnmerge cells at anchor (false if none)
getMergedRegion(row, col) => MergedRegion | nullGet merged region containing cell
getMergeManager() => MergeManagerAccess MergeManager
MethodSignatureDescription
setRowGroups(groups: RowGroupDef[]) => voidDefine row groups
toggleRowGroup(logicalRow) => voidToggle expand/collapse
expandAllGroups() => voidExpand all groups
collapseAllGroups() => voidCollapse all groups
clearRowGroups() => voidRemove all groups
setGroupAggregates(aggregates) => voidSet aggregate functions for group headers
getRowGroupManager() => RowGroupManagerAccess RowGroupManager
MethodSignatureDescription
setColumnValidation(col, rules) => voidSet validation rules for column
setCellValidation(row, col, rules) => voidSet validation rules for cell
removeColumnValidation(col) => voidRemove column validation
removeCellValidation(row, col) => voidRemove cell validation
getValidationEngine() => ValidationEngineAccess ValidationEngine
MethodSignatureDescription
registerContextMenuItem(item: ContextMenuItem) => voidRegister a menu item
unregisterContextMenuItem(id: string) => voidRemove a menu item
getContextMenuManager() => ContextMenuManager | nullAccess ContextMenuManager
MethodSignatureDescription
getClipboardManager() => ClipboardManager | nullAccess ClipboardManager
MethodSignatureDescription
getInlineEditor() => InlineEditor | nullAccess InlineEditor
MethodSignatureDescription
addRenderLayer(layer) => voidAppend a render layer
insertRenderLayerBefore(layer, beforeLayer) => voidInsert layer before another
getRenderLayer<T>(layerClass) => T | undefinedGet layer by class
removeRenderLayer(layer) => voidRemove a render layer
MethodSignatureDescription
getTheme() => WitThemeGet current theme
setTheme(theme: WitTheme) => voidSwitch theme at runtime
MethodSignatureDescription
installPlugin(plugin: WitPlugin) => voidInstall a plugin (checks dependencies)
removePlugin(name: string) => voidRemove plugin by name
getPlugin(name: string) => WitPlugin | undefinedGet installed plugin
MethodSignatureDescription
on(event, handler) => voidSubscribe to an event
off(event, handler) => voidUnsubscribe from an event
getEventBus() => EventBusAccess the EventBus

See Event System for a full list of events.

MethodSignatureDescription
getVisibleRange() => CellRangeGet currently visible row/col range
getDataView() => DataViewAccess logical↔physical row mapping
getViewportManager() => ViewportManager | nullAccess viewport calculation
getDirtyTracker() => DirtyTracker | nullAccess dirty tracking
getScrollManager() => ScrollManager | nullAccess scroll container
getConfig() => WitEngineConfigGet engine configuration
getCanvasElement() => HTMLCanvasElement | nullGet the canvas DOM element
getCellTypeRegistry() => CellTypeRegistryAccess cell type registry