2.0 release notes
RSSNutrient Document Authoring SDK 2.0 adds spreadsheet editing and processing. Applications can import XLSX files, store spreadsheets as SheetJSON, and export them as XLSX or PDF.
This release also adds typed editor action calls and custom text context-menu items. Applications can build command buttons that use the editor’s registered actions.
Spreadsheets
Spreadsheet support covers a browser editor, formula calculation, and APIs to import, save, and export spreadsheets.
Spreadsheet editor
The new browser editor provides a grid, formula bar, sheet tabs, context menus, and standard spreadsheet keyboard shortcuts. Its toolbar includes zoom, undo and redo, font and color controls, borders, alignment, text wrapping, merging, number formats, and download. The View menu toggles gridlines, and Page setup controls page settings.
Users can copy and paste within the editor or between the editor and other applications. The built-in download menu exports the current sheet as PDF or the complete spreadsheet as XLSX.
Applications create an editor with createSpreadsheetEditor(). One DocAuthSystem handles both documents and spreadsheets, and detectFileKind() enables applications to route files from a shared picker to the correct editor.
For setup and editor details, refer to the spreadsheet getting started and spreadsheet editor guides.
Formulas
The spreadsheet editor calculates SUM, AVERAGE, MIN, MAX, COUNT, and COUNTA. Formulas can use arithmetic and comparison operators, cell ranges as function arguments, and references to other sheets. When a user changes a cell, the editor recalculates dependent formulas across the spreadsheet as part of the same undo step.
The SDK preserves most other formulas and their stored results during XLSX import and export, but it doesn’t recalculate them. For the supported expression syntax and the behavior of other formulas, refer to the spreadsheet formulas guide.
Import, save, and export
Use importSpreadsheet() to open XLSX or SheetJSON. Large imports can report progress and support cancellation. Use createSpreadsheetFromPlaintext() to create a spreadsheet with one sheet, either blank or with text in cell A1.
SheetJSON is the native spreadsheet format. saveSpreadsheet() and loadSpreadsheet() preserve all spreadsheet data that Document Authoring supports. Use SheetJSON as the working copy. Then export to XLSX when another application needs the file.
The export() method creates XLSX or PDF output. PDF export includes every visible sheet by default, or one sheet when the application passes its zero-based index. The PDF uses the spreadsheet’s page setup, including paper size, orientation, scale, fit to page, margins, centering, and row and column headings.
For format support and examples, refer to the import and load, save and export, and SheetJSON guides.
Run actions from your own controls
Use editor.executeAction() with the actionCalls builders to run built-in commands. Each builder documents its arguments and checks their types in TypeScript. For custom actions or IDs known only at runtime, pass an ActionCall object with id and args.
editor.isActionRegistered() checks whether an action exists, and editor.isActionEnabled() checks whether it can run. Document permission checks still apply when the editor processes an edit. Execution rechecks availability and validates arguments for SDK handlers. A rejected call returns an error through its promise. Custom and replacement handlers must validate their own arguments.
Add custom text context-menu items
Register custom actions alongside defaultActions. Add items with ui.contextMenu when creating the editor or editor.setContextMenuConfig() at runtime. Host items appear after built-in items and follow the same registration and availability checks.
The configuration supports text menus, including text in table cells and shapes. It doesn’t configure image or shape-object menus or add submenus.
Declare which editor modes enable custom actions
The public ActionCapability type and optional action capabilities describe what a custom command does. These capabilities enable read or view commands in view mode while blocking document changes. Custom actions without explicit capabilities still require document-change permission.
Migration impact
Built-in toolbar controls, shortcuts, palette commands, and supported context-menu items now use the action registry. The editor hides controls whose actions are omitted from setActions(). It disables registered actions that can’t run. These controls use replacement handlers, and shortcuts now respect isEnabled().
Start with the upgraded defaultActions when adding custom commands. If you use a smaller list, compare it with the 46 new built-in action IDs in the 2.0 migration guide. Existing custom IDs that now match built-in IDs become replacement handlers.
Comment-panel reply, edit, resolve, and delete commands, tracked-change Accept and Reject commands, and ruler gestures keep their existing execution paths.
Reliability fixes
- Runtime actions, toolbar configuration, and custom context-menu items survive document switches.
- A custom
isEnabled()exception or invalid icon doesn’t break the toolbar. UI action failures are logged; public invocation rejects with the handler’s error. - Replacement handlers can define their own argument requirements without inheriting the SDK handler’s validators.
- The command palette finds actions by their full names.
- Text context menus open in view mode. Read commands can run, and mutations remain disabled.
For registration, invocation, mode checks, and context-menu examples, refer to the actions and toolbar guide. The SDK’s downloadable example project includes an Actions and Toolbar demo and a Context Menu demo.
For the complete SDK release summary, refer to the changelog.