We’re excited to announce the release of SpreadJS v18.2, a feature-packed update that spans data visualization, collaboration, design-time enhancements, and more. This release introduces new chart types, improved designer functionality, better integration with modern frameworks, and numerous productivity enhancements across the board. Developers can look forward to building more powerful and intuitive spreadsheet applications with these updates. Ready to dive into the details?
Explore What’s New in SpreadJS v18.2
- Designer Component Enhancement
- Formulas
- Import/Export
- Tables/DataTables
- DataCharts
- PivotTable
- ReportSheet
- UI and UX Enhancements
- Framework Support
- Collaboration Add-On (Developer Preview)
- Licensing
Ready to check it out? Download SpreadJS Today!
Designer Component Enhancements
Designer Theme Support
The SpreadJS Designer Ribbon Component now has flexible Theme Support. You can choose between predefined Light, Dark, and Classic themes or create custom themes to match your application's branding, enhancing visual integration.
Theme Name | CSS File | Preview |
Light (default) | gc.spread.sheets.designer.light.x.x.x.min.css | ![]() |
Dark | gc.spread.sheets.designer.dark.x.x.x.min.css | ![]() |
Classic | gc.spread.sheets.designer.x.x.x.min.css | ![]() |
If you want a custom theme, you can customize colors, fonts, and styles extensively through CSS variables or the built-in API. This flexible theming system ensures seamless visual integration with your existing applications, significantly enhancing user experience and consistency.
Note that we've updated some CSS class names in the Designer Ribbon for better consistency, improving maintainability and custom styling.
Learn more in our Designer Theme documentation or try our online Designer Theme demo.
Editable Font Picker
The Designer Font Picker is now editable, allowing quick searches and entry of custom font names, streamlining workflow and customization.
Transform Cells with LAMBDA
Apply powerful, custom LAMBDA formulas interactively within the Designer to transform selected data ranges on-the-fly. To use this feature, you can select a range of cells, right-click and choose “Transform Cells”. This will bring up a dialog that applies LAMBDA formulas which can be scoped to Cell, Row, Column or Range.
Read more in our LAMBDA Formulas documentation.
Paste Special with LAMBDA
The Paste Special function also now supports custom LAMBDA transformations, enabling advanced data manipulation directly upon pasting.
Formulas
Asynchronously Evaluate Functions Outside Worksheet
Formulas can now be evaluated asynchronously outside worksheet contexts using evaluateFormulaAsync
, supporting responsive UI and integration with asynchronous data sources. These can be useful for:
- Functions that perform asynchronous tasks
- APIs that return data asynchronously
- Perform long-running calculations
Learn more in our evaluateFormulaAsync documentation.
Import/Export
Lossless XML Map Export
We have introduced a losslessEditing
property that preserves macros and XML Maps during Excel exports, ensuring data fidelity for round-trip scenarios.
Read more in our Excel Export documentation or try our online Import & Export demo explorer.
XLSM and XLTM File Format Support
We have added support for XLSM and XLTM Excel files, in addition to XLSX. While any macros will not be executed in SpreadJS, you can import and export Excel Macro-Enabled Workbook and Template files and retain macro definitions for seamless integration with Excel workflows.
Learn more in our Excel File Format documentation.
Tables/DataTables
Convert Tables to/from DataTables
Seamlessly convert between static worksheet tables and bound DataTables, enhancing flexibility in data-bound applications. This capability is critical for applications needing structured data binding (e.g., real-time analytics, reporting) or snapshot preservation (e.g., data auditing, template reuse).
Read more in our Table Conversion docs or online demo explorer.
Retrieve Bound Table’s Data Source
A new API to programmatically retrieve the underlying data source from bound tables simplifies data manipulation and synchronization. The getBindingSource
method on a GC.Spread.Sheets.Tables.Table
object allows you to retrieve the underlying data source that the table is bound to.
Learn more in our Table Binding documentation.
DataCharts
Funnel Charts
New Funnel chart support in DataCharts allows visualization of sequential data or conversions, perfect for sales pipelines or workflow stages. Customize segment gaps and neck widths for precise control.
Read more in our Funnel DataChart documentation or try our Funnel DataChart demo.
Treemap Charts
Treemap charts in DataCharts enable visualization of hierarchical data through nested rectangles, providing an immediate understanding of complex data relationships in a compact form.
Learn more in our Treemap DataChart docs or try our Treemap DataChart demo.
PivotTable
PivotTable Full Column Data Source
SpreadJS PivotTables can now use a full column (for example, Sheet1!C:D
) as its data source.
Read more in our PivotTable documentation.
ReportSheet
Show Hidden Rows/Columns in ReportSheet’s Template Designer
Temporarily reveal hidden rows and columns during report template design for easier editing and validation.
Learn more in our ReportSheet Show Hidden Row and Col docs.
UI and UX Enhancements
This release includes several user interface improvements designed to streamline spreadsheet navigation and editing making your apps feel faster, smarter, and more intuitive:
Enhancement | Description | Preview |
Data Validation Dropdown Search | Quickly filter validation lists by typing. | ![]() |
Name Manager Sorting & Filtering | Efficiently manage named ranges with sorting and filtering. | ![]() |
Sheet List Search | Quickly locate sheets in workbooks with many tabs. | ![]() |
CheckBox & CheckBoxList CellType Toggle Mode | Directly toggle checkbox states with single clicks. | ![]() |
Comment Fill Color | Customize cell comment backgrounds, matching Excel's latest capabilities. | ![]() |
Shape Text Direction Support | Shapes now support vertical and right-to-left text orientations. | ![]() |
Framework Support
Next.js 15 Support
SpreadJS fully supports Next.js 15, ensuring smooth server-side rendering and integration with modern React applications.
Get started with our NextJS guide.
React 19 Support
SpreadJS now officially supports React 19, ensuring compatibility with the latest React advancements, including new hooks and concurrent rendering improvements. This enables smoother, more performant spreadsheet integrations in modern React-based applications.
Get started with our ReactJS guide.
Collaboration Add-On (Developer Preview)
Collaboration Editing Status
The SpreadJS collaboration engine now tracks real-time editing states to proactively alert you to conflicts, such as cell deletions or changes by other users. This helps ensure smoother collaborative experiences by reducing confusion and unexpected results.
Learn more in our Collaboration Editing Status documentation.
Batch Mode for Collaborative Operations
You can now batch multiple user actions into single atomic operations (ChangeSets), reducing network overhead and ensuring coherent updates in collaborative editing scenarios.
Read more in our Collaboration ChangeSet docs.
Licensing
Improved Licensing Messages
Clearer, more descriptive licensing error messages assist with quicker troubleshooting and setup. License error scenarios now include:
- Missing License
- Invalid License String
- Product Mismatch
- Version Compatibility
- Expired License
- Hostname Validation
These will help developers solve licensing errors in their applications.
We encourage you to explore these new features and incorporate them into your projects. As always, you can find more details in our documentation and see these capabilities in action in our online demos. This release continues our commitment to making SpreadJS the most comprehensive and high-performance JavaScript spreadsheet solution available.
Happy coding, and we look forward to seeing what you build with SpreadJS v18.2!