Products

What's New in Version 12

Overview

Version 12 delivers unprecedented performance improvements, efficiently handling over 1 million rows with real DOM elements while maintaining exceptional speed and flexibility.

This release introduces powerful new features including advanced formula capabilities, improved copy-paste operations with style preservation, worksheet tables, and enhanced mobile navigation. These advancements strengthen our commitment to providing the most comprehensive JavaScript spreadsheet solution available.

Highlights

  • Extended Viewport: Support for 1M+ rows with optimized rendering.
  • Performance: Range and calculation optimizations for better performance
  • Mobile Navigation: Significant improvements in mobile navigation and better responsiveness
  • Touch Support: Enhanced touch interactions and responsiveness
  • Accessibility: Improved keyboard navigation with IME capabilities

New features

  • Worksheet Tables: New table feature for structured data management
  • Enhanced Copy-Paste: Copy and paste from Excel/Google Sheets with style preservation
  • Web Components: Support for web-components-based editors
  • Multi-Selection: Drag and drop support for multiple columns and rows
  • Force as text: Special text string character to force any input to be treated as text
  • Context Menu: New keyboard navigation support
  • Top Menu: New native top menu implementation
  • Selections: Deselect with CTRL+click consistent with other spreadsheet software

Behavior and Critical Updates

  • Column Width: Changing the width of hidden columns/rows does not change the visibility state
  • Null Handling: undefined/null is treated differently from empty strings for calculations and getData()
  • Empty String Definition: To explicitly define empty strings, use "''"

New Extensions

  • @jspreadsheet/extensions: Collection of all extensions
  • @jspreadsheet/format: Extension for custom editors and cell masking

Upgrade Requirements

Version 12 maintains the best compatibility possible with version 11 but includes important changes detailed below. Review these modifications carefully before upgrading to assess their impact on your existing codebase.

Potential Breaking Changes

Data Configuration

Status Property Description
New autoNames Ensures all properties from the first data element are declared as existing columns and defines column names when not explicitly declared
Removed ignoreUndefinedColumns Replaced by autoNames
Updated updateCell Returns object or boolean

Persistence

Jspreadsheet has removed these controls in favor of persistence: function which brings much more flexibility to developers. Additionally, the new autoId property helps to track row ids using guids.

Worksheet Level

Status Property Description
Removed persistence Use persistence at the spreadsheet level
Removed server Use persistence at the spreadsheet level
Removed save Method has been removed
Removed sequence Sequence controls removed
Removed getNextSequence Sequence controls removed

Spreadsheet Level

Status Property Description
Removed onbeforesave Use persistence at the spreadsheet level
Removed onsave Use persistence at the spreadsheet level
Removed onbeforesend Use persistence at the spreadsheet level

Columns

This new version brings some new features, such as:

  • Column Visibility: Now includes arrow indicators;
  • Multi Column Drag: Drag and drop multiple columns simultaneously;

Worksheet Level

Status Property Description
Removed getPrimaryKey Method has been dropped

Column settings

Status Property Description
Removed type: autoNumber Editor has been removed
Removed primaryKey: boolean Property is no longer valid

Rows

This new version brings some new changes and new features:

  • Row Visibility: Now includes arrow indicators;
  • Multiple Row Drag: Drag and drop multiple rows simultaneously;
  • Automatic Ids: Automatically allocate guids for new rows;
Status Method/Property Description
Updated getId Signature changed - second argument dropped
New autoId Allocate a guid automatically for new added rows

Formulas and Calculations

Huge performance optimizations have been introduced on version 12, with much better range management, a new type of chain for column and lines and calculations by reference when used together with Formula Pro Version 6.

  • Worksheet Names: Can now accept special characters when used as 'Countries-EU'
  • Internal Arrays: Array controllers have been updated
  • Formula Pro: New syntax to accept =100 * .1
  • onerror: The formula pro includes the event onerror to be triggered when a formula generates errors.

Worksheet Level

Status Property Description
Removed preCalculation With optimized calculations all formulas are calculated on loading to improve navigation performance
Removed secureFormula Property has been dropped
Deprecated updateFormula Method is deprecated
Updated executeFormula Signature has changed
Removed columnNamesInFormulas Use definedNames for better compatibility
New setChain New chain system with setChain function for custom chain objects

Spreadsheet Level

Status Property/Method Description
Updated onbeforeformula Signature has changed
Updated onchangereferences Signature changed to provide expanded table structure information

Removed Functions

Custom formulas can be used to restore these functions if needed.

Status Method
Removed =CHART
Removed =TABLE
Removed =VAL
Removed =NULL

Clipboard

Jspreadsheet automatically includes styles when copying data from Excel, Google Sheets or other external spreadsheets or tables, as long as the content is smaller than 10MB.

  • External Paste: Pasting from external software now brings style information.
  • Paste Special: New paste special controls are available in the context menu.

Paste with style

/** Paste with style max size. Default: 10MB */
jspreadsheet.pasteWithStyleMaxSize = 10000000;

Properties Management

Status Property Description
Removed getProperties Use getProperty instead
Removed setProperties Use setProperty instead
Removed updateProperty Use setProperty instead with argument for update.
Deprecated getOptions Use getProperty instead
Updated setProperty New argument to add properties on top of the existing ones.

Validations

Several improvements to validations have been brought with version 12, such as:

  • Custom Validations: New setter jspreadsheet.setValidationHandler(name, handler)
  • Dynamic Lists: Support for type=formula and type=list with dropdown and formulas for dynamic lists
Status Property Description
Updated hasErrors Return value changed from boolean to boolean | [] to identify error locations
Updated loadValidations Last argument bringIndex has been dropped

Filters

Several improvements that include performance and filters have been included, and some other changes, such as:

  • Column-Specific Filters: It is no longer possible to activate filters for specific column headers; you can activate at the header level or range level
  • Range Filters: Better range filtering capabilities
  • History Integration: Toggle filters are included in history to accept undo/redo operations
Status Method Description
Updated getFilters Signature has changed
Updated setFilters Signature has changed
Updated openFilter Signature has changed
Updated resetFilters Signature changed. Use hideFilters to remove filters
Updated hideFilters Signature changed - will destroy the whole filter

Editors

The new version brings significant improvements to editors. More accessibility with ARIA, enhanced IME and keyboard and navigation support. Additionally, custom editors can be created as web-components and other features as described below.

Status Property Description
New strictMode: boolean For dropdowns to block non-listed values
Removed filter Property has been dropped

Editor Types

There are significant editor updates, including a complete new widget for calendar and dropdowns. Please check the editors section for more information.

Status Editor/Property Description
Removed autonumber Editor has been removed
Removed percent Alternatively use format or mask
Updated dropdown | autocomplete Enhanced IME keyboard and navigation support
Updated calendar Keyboard navigation and range support

Viewport

The highlight of the viewport updates is the improved capability to handle millions of rows. Additionally, several properties have been moved to the spreadsheet level to ensure consistency across different worksheets.

Worksheet Level

Status Property Description
Updated tableOverflow Now defined at the spreadsheet level
Updated tableWidth Now defined at the spreadsheet level
Updated tableHeight Now defined at the spreadsheet level
Updated resize Removed. Use resizable at the spreadsheet level

Spreadsheet Level

Status Property Description
New tableOverflow: boolean Worksheet dimensions for all worksheets
New tableWidth: number Worksheet dimensions
New tableHeight: number Worksheet dimensions
New resizable: boolean Worksheet is resizable

Shortcuts

The new shortcut management system is more flexible and logical, using an object-based declaration to match keyboard events.

More information

Group Columns/Rows

There are three main updates to row and column grouping:

  • Background color has been removed.
  • History support has been added, allowing users to undo open/close group actions.
  • Improved consistency in group behavior across the spreadsheet.

Search

Status Property/Method Description
Removed updateSearch Method no longer available

Footers

Footers have better capabilities, more flexible methods and are updated automatically during formula updates.

Status Method/Property Description
Deprecated refreshFooter Method is deprecated
Updated setFooterValue Now receives an array of values
Updated onrenderfootercell Signature changed for event

History

  • Cascade Events: The history event onredo or onundo happens only once even when there are cascade events.
  • Performance: Improved history management and performance.