v1.3.0
Feature release. Headline item: multi-sheet workbooks — a grid is now a workbook of N worksheets with a core-provided sheet tab bar, per-sheet undo, whole-workbook xlsx/JSON I/O, and cross-sheet formula references (`=Sheet1!A1`). No breaking public-API changes.
✨ Highlights
- ▸ Multi-sheet workbooks. A grid is now a workbook of N worksheets with one active sheet and a core-provided sheet tab bar (add, rename, delete, drag-to-reorder, hide, tab color). Each sheet has its own data, selection, scroll, frozen panes, and undo history. New
instance.workbookcoordinator (addSheet/removeSheet/renameSheet/moveSheet/setActiveSheet/getSheets/onActiveSheetChange/onSheetsChange). Whole-workbook I/O on the instance:saveAsXlsx,loadXlsx/loadFromFile/loadFromUrl(loads all sheets), andtoJson/loadJson. Available in both Lite and Pro; tier guards and row/col limits apply per sheet. - ▸ Cross-sheet formula references. Formulas can reference cells on other sheets:
=Sheet1!A1,='My Sheet'!A1:B2, and unquoted non-ASCII sheet names (=シート1!A1). Aggregates and the LOOKUP family work over cross-sheet ranges (=SUM(明細!A1:A3)). Excel-compatible lifecycle: renaming a sheet rewrites referencing formulas, deleting one turns references into#REF!, row/column insert/delete shifts other sheets' references, and cross-sheet cycles are detected (#CYCLE!). Available in both Lite and Pro. - ▸ Instance-level events that follow the active sheet. New
instance.onSelectionChange/onCellValueChange/onBulkCellsChange/onScrollChange/onViewportSizeChange/onStructureChange/onContextMenuforward the active sheet's events and re-point automatically on a sheet switch — subscribe once instead of re-binding per sheet.
~ Changed
- ▸
instance.worksheetandinstance.actionManagerare now getters returning the active sheet's. Existing single-sheet code is unchanged. Note: single-sheet embeds now show a ~28px sheet tab bar by default — passcreateReogrid({ showSheetTabs: false })to hide it. - ▸ Multi-sheet xlsx import parses the file once and reuses the parsed workbook for every per-sheet import (previously O(N) re-parses for an N-sheet file). New
parseXlsx()helper +ParsedXlsxtype. - ▸ Workbook view state round-trips through xlsx: active sheet, per-sheet hidden state, and sheet tab colors are written on export and restored on load. ReoGrid-JSON also persists per-sheet
view.showGridlines.