What's new
If you are updating Spreadsheet from an older version, check Migration to Newer Version for details.
Version 6.0.4
Released on November 2, 2026
New functionality
- Accessibility support that targets WCAG 2.2 AA, Section 508 and EN 301 549: keyboard operation of every part of the Spreadsheet, screen reader support and a visible focus in every theme. Check the Accessibility guide and the Accessibility Conformance Report
- The ability to turn the selection of cells off and on:
- new configuration property:
selection - new methods of the selection module:
enable(),disable(),isDisabled()
- new configuration property:
- The
announce()method sends a status message to screen readers - New commands of the context menu: Column width, Row height and Open filter
Updates
- Keyboard navigation (check the Hot keys list):
- the focus stays on the active cell,
TabandShift + Tableave the cells from the last and the first cell of the sheet, andCtrl + F6moves the focus between the menu, the toolbar, the sheet and the sheet tabs - the toolbar, the menu bar and the sheet tabs are single tab stops navigated with the arrow keys
- new shortcuts are added, for example,
Shift + F10for the context menu andCtrl (Cmd) + Shift + 9/Ctrl (Cmd) + Shift + 0for showing hidden rows and columns - the toolbar color and border popups take the focus when they open and close with
EscandTab
- the focus stays on the active cell,
- The arrow keys stop at the first and last visible row and column instead of moving to the opposite edge, and an arrow key at the edge reduces a selected range to the active cell
- Text composed with an input method editor (IME) is shown in the active cell and starts the edit through the
startEdit()method, so thebeforeEditStartandafterEditStartevents fire for it - The
setFocusedCell()method moves the keyboard focus to the cell - A link in a cell is rendered as a real link that opens in a new tab, and
Alt (Option) + Enteropens the link of the active cell - The read-only mode keeps the keyboard navigation, the selection, copying and search, and screen readers announce the refused edits. To turn the selection off, use the
selection: falseoption - Removing a row or a column through a merged cell removes all the rows or columns of the merged cell
- New interface and screen reader strings in the
spreadsheetlocale, and translation of the built-in widgets - The
--dhx-spreadsheet-focus-colorvariable for the keyboard focus, and the formula reference colors with a higher contrast in the light themes
Fixes
- A merged cell was dropped instead of shifted when a row or column before it was deleted. Now a merged cell left with a single cell becomes an ordinary cell and keeps its value
- Deleting a row or column through a merged cell removed only one line of the merge
- The context menu labels for removing rows and columns didn't show all the rows or columns of a merged cell that would be removed
- Rows were not deleted when they covered the whole filtered range
- The frozen area didn't shrink when frozen rows or columns were deleted
- Autofill threw an error when the dragged cells held no plain number
- The page froze on
Home,End,Ctrl (Cmd) + Home,Ctrl (Cmd) + EndandCtrl (Cmd) + Arrowkeys when the first or last row or column was hidden - The font size was lost when cells were copied to Excel or pasted from Excel or within the Spreadsheet
- The invalid-value tooltip appeared away from the invalid cell or wasn't shown
EscandTabdidn't work in the list editor after the arrow keys were used- The search highlighted the second match first and didn't refresh the results after an edit or a sheet switch
- A script error occurred on import or export in a browser without WebAssembly
- Document listeners and inner widgets were left behind after
destructor() - The keyboard focus was lost after the search bar closed
- A closed context menu reopened
- The active cell was scrolled one cell short of the viewport edge during keyboard navigation
- A formula with an invalid reference showed a broken or repeated
#REF!error instead of a single#REF!
React Spreadsheet
React Spreadsheet includes all the Spreadsheet updates and fixes listed above. The changes below are specific to the React wrapper.
Updates
- The new
selectionprop - The
ISelectiontype is re-exported readonlyis an init-only prop
Fixes
- The event callbacks and
onStateChangedidn't fire after the Spreadsheet was recreated by an init-only prop change - The event handlers of the wrapper were not removed on unmount
- The data from
loadUrlwas loaded twice on mount and again over the kept data after the Spreadsheet was recreated
Version 6.0.3
Released on August 24, 2026
Fixes
- Custom column and row sizes were lost by the
serialize()method if the cells were empty - Scroll "jumping" in Chrome when a selected cell re-entered the viewport
- Some formulas disappeared after importing data from an Excel file
- The "locked" state of cells was lost during Excel export and import
Version 6.0.2
Released on July 1, 2026
Fixes
- Cell borders were lost after a "Copy from Excel → Paste to Spreadsheet → Export/Import" cycle
- Data pasted below the last row was not displayed because the grid did not add new rows to fit it
Version 6.0
Released on May 20, 2026
Breaking changes
The new release introduces significant changes in the Spreadsheet API: there is a set of deprecated methods, properties and events. Check the Migration guide to keep in step with the latest version.
New functionality
- React Spreadsheet wrapper is introduced. Check related examples in the GitHub demo repository
- The
SheetManagermodule is introduced. It is a centralized API for managing sheets in Spreadsheet. It is accessible via thespreadsheet.sheetsproperty and replaces all the deprecated sheet-related methods on the root Spreadsheet instance. - The ability to specify a custom (user-defined) formula via the new
addFormula()method - The ability to display numbers in the scientific (exponential) notation
Updates
- The ability to adjust the font size of cell content:
- setting a default font size option via a built-in toolbar control
- setting a custom font size for the toolbar control
- New conditional aggregate functions are added into the formulas engine:
COUNTIF,COUNTIFS,SUMIF,SUMIFS,AVERAGEIF,AVERAGEIFS,MAXIFS,MINIFS - New dynamic array functions are added into the formulas engine:
CHOOSECOLS,CHOOSEROWS,DROP,EXPAND,RANDARRAY,SEQUENCE,SORT,SORTBY,TAKE,TEXTSPLIT,TOCOL,TOROW,UNIQUE,WRAPCOLS,WRAPROWS - The
awaitRedraw()helper is added for Spreadsheet to detect the rendering process and run the desired code after the component finishes rendering - JSDoc annotations are added to the type definitions, providing inline API descriptions, parameter types, and code examples directly in the IDE
Fixes
- Losing focus after switching the active sheet via the API
- Returning an array of changed cells in the transpose mode
- Recalculating dependent formulas after paste
- Overwriting locked cells with formulas during paste operations
- The issue with running mathematical formulas in a locked cell
- Sheet name escaping for names that resemble cell references, start with a number, or contain special characters
- The issue with dynamic arrays when the cell id is zero (the first cell of the first sheet)
Version 5.2.9
Released on January 8, 2026
Fixes
- Editor dropdown filtering now uses
startsWithinstead ofincludeswhen typing in an open editor - Excel cell borders are now preserved after export and import
- Prevent font size overriding when pasting from external tables
Version 5.2.8
Released on December 15, 2025
Fixes
- The problem with losing focus when selecting another cell during formula editing
- The issues with keyboard navigation
Version 5.2.7
Released on December 9, 2025
Fixes
- Export to Excel failing when a sheet contains a cell with a data-validation list
- The issue where a dropdown with a data-validation list stops working when the initial cell value is
% - The problem with the
INDEX/MATCHformula breaking after setting focus in the formula bar
Version 5.2.6
Released on November 19, 2025
Fixes
- An extra DOM element appearing during the import of an .xlsx file that contains a cell with a wrapped text
- Incorrect displaying of column/row labels in the column context menu while managing columns
- The sheet structure breaking when freezing a range that contains merged cells
- Improved keyboard navigation in sheets with spanned cells
Version 5.2.5
Released on October 23, 2025
Fixes
- The issue with the row height decreasing on applying the "Wrap" option to the content that fits the column width
Version 5.2.4
Released on September 24, 2025
Fixes
- Added export/import support for multiline cells
Version 5.2.3
Released on September 10, 2025
Fixes
- Incorrect alignment of numbers in cells when inserting arrays
- Improved input in the Asian languages
Version 5.2.2
Released on August 18, 2025
Updates
- Enhanced
setValidation()for the type-ahead filtering in the built-in drop-down editor - Added export/import support for hidden/frozen columns/rows, the data validation select box and Excel links in .xlsx files
Fixes
- The problem with unmerging spanned cells in frozen columns/rows
- The issue with applying built-in themes
- The issue with Chinese input
- The issue with Japanese input on MacOS: autocomplete confirm causes the editor closing
- The problem with compiling the
spreadsheet.d.tsfile
Version 5.2.1
Released on June 30, 2025
Updates
- The possibility to remove several columns/rows in one operation via the context menu
Fixes
- The copy/paste script error
- The error that occurred on deleting a row with the two or more last rows selected in the sheet
- The issue with warning displayed on the toolbar customization
- The issue with missing localization for the datepicker
- The issue with unnecessary displaying of the vertical scroll in the toolbar
- Math fixes for correct calculations in formulas
Version 5.2
Released on May 20, 2025
Breaking changes
The new release introduces some changes to the freezing/unfreezing functionality for columns and rows. Check the Migration guide to keep in step with the latest version.