# Release Notes for Version 18.1.0

## Content

## Enhancements from the Previous Release

The following features and enhancements have been incorporated into this version of the product.
​**​Performance & Optimization​**​

* Reduced the size of the SpreadJS Designer component JS and CSS for faster loading.
* Improved PivotTable performance for smoother data operations.

​**​Designer Enhancements​**​

* ​**​SidePanel Flexibility​**​: The Designer [SidePanel ](/spreadjs/docs/v18/spreadjs-designer-component/spdesignerwork/dockable-side-panel)now supports docking and floating.
* ​**​Command Palette​**​: Added [Command Palette](/spreadjs/docs/v18/spreadjs-designer-component/spdesignerwork/command-palette) support for streamlined workflows.
* ​**​Ribbon Checkbox Styling​**​: Updated the appearance of ribbon checkboxes for better visual consistency.
* ​**​Scrollbar Control​**​: Added the `scrollIgnoreHidden` option for scrollbar behavior customization.
* ​**​Chart Customization​**​:
    * Support for adjusting chart axis `labelAngle` in the Designer.
    * Added the `BubbleScale` option for [Bubble Charts](/spreadjs/docs/v18/features/Charts/ChartTypes/CreatingScatterChart).
    * Enabled setting category axis label formatter and units in the [DataChart](/spreadjs/docs/v18/features/data-charts/data-chart-elements) Panel.

​**​UI & Styling​**​

* [​​Sheet Tab Customization​​](/spreadjs/docs/v18/features/workbook/tabstrip): Support for custom border radius styles on sheet tabs.
* ​​[Worksheet Background](/spreadjs/docs/v18/features/worksheet/background-image)​​: Added support for worksheet-level background images.
* ​​[Theme Fonts​​](/spreadjs/docs/v18/features/styletheme/themes): East Asian font support in themes.

​**​Formula & Calculation​**​

* ​​New Function​​: Support for the [`TRIMRANGE`](/spreadjs/docs/v18/formulareference/FormulaFunctions/lookup-reference-functions/trimrange) function.
* ​​[Regex Compatibility](/spreadjs/docs/v18/formulareference/FormulaFunctions/regex-functions)​​: Full compatibility with Excel’s regex functions.
* ​​API Enhancement​​: [`evaluateFormula()`](/spreadjs/docs/v18/features/formulas/calculating-formulas-outside-worksheets) now returns complete result arrays.

​**​PivotTable Improvements​**​

* ​​[Formatting](/spreadjs/docs/v18/features/pivot-table/context-menu)​​: Streamlined PivotTable field formatting using the Designer’s NumberFormat dialog.

**AI Capabilities​ - PREVIEW**​

* ​[General AI Support​​:](/spreadjs/docs/v18/features/ai-assistant) SpreadJS now integrates AI functions.
* ​[Formula Editor Panel AI](/spreadjs/docs/v18/features/ai-assistant/ai-assisted-formula-generation-and-explanation)​: AI-powered suggestions and assistance in the Formula Editor Panel.
* ​[PivotTable Panel AI](/spreadjs/docs/v18/features/ai-assistant/pivottable-generation-and-explanation) ​​: The PivotTable Panel now supports AI-assisted features.

​**​Framework Support​**​

* ​​[Angular 19](/spreadjs/docs/v18/javascript-frameworks/angular)​​: Added full compatibility with Angular 19.

## Resolved Issues

The following issues have been resolved since the last release:
​**​Performance & Import/Export​**​

* Fixed Excel file loading stalling due to slow conditional format import and data validation column inflation issues.
* Refactored the DataValidation module cache logic (from dict to rbush) to resolve freezing after Excel import.
* Fixed XLSX export failures caused by case-sensitive pivot table field names (now aligned with Excel’s case-insensitive behavior).
* Fixed XML node mismatches during XLSX export, which caused errors in PivotTable layouts (e.g., blank rows, subtotals).
* Improved performance when adding row data via DataManager in table binding scenarios.
* Addressed file load failures due to excessive shape counts (21,477+).
* Fixed export anomalies with `IncludeBindingSource=true` where string/number cell values conflicted in XML output.
* Fixed an issue where setting `printInfo` or slow printing could trigger a full recalculation of all formulas when defining the print area.
* Fixed a performance issue where Excel files containing conditional formatting rules with duplicate ranges caused slow rendering. Duplicate ranges are now automatically removed during import.

​**​Charts & Data Visualization​**​

* Fixed incorrect data point tooltip display and hit-test errors in charts.
* Aligned bubble chart scaling and legend layouts with Excel’s behavior.
* Fixed PDF shape rendering discrepancies (e.g., dashed lines) caused by unit conversion gaps.

​**​Pivot Tables​**​

* Fixed premature filter box closure on mouse exit (now matches Excel’s behavior).
* Corrected pivot table title styling issues (font weight priority now aligns with Excel themes).
* Fixed data source change errors caused by unvalidated column header ranges.
* Resolved blank sheets after deleting calculated fields (improved PivotCache refresh logic).
* Fixed drag-and-drop functionality overwriting underlying data incorrectly.
* Fixed pivot table outputting "NAN" for special data in "Show Data As" mode.

​**​Formulas & Calculations​**​

* Fixed `ExternalReference` with `SUMIFS` failing to update linked values (e.g., `#VALUE` errors).
* Fixed `XIRR` formula returning `#NUM` due to unparsed date formats (e.g., "Mar 2017").
* Ensured dynamic array formulas recalculate after range expansion.
* Aligned `SORT` function argument handling with Excel’s behavior.

​**​UI & Designer Component​**​

* Added tooltips for truncated table binding paths to improve debugging.
* Fixed header/footer font parsing (e.g., bold style in "맑은 고딕").
* Corrected hyperlink dialog echoing mismatched content post-edit.
* Fixed GanttSheet caption name resetting to default on click.
* Prevented underline styles from reappearing in `.sjs` files after removal.
* Fixed `ActiveSheetChanged` event not firing during lazy loading or search navigation.
* Fixed font `TextDecoration` type conflicts between SpreadJS (boolean/number) and Excel (number-only).
* Fixed sheet tab background color application failures (PivotTable command error).

​**​Data Validation & Commands​**​

* Fixed "Paste Special transpose" failing after inserting new rows.
* Optimized validation performance by improving cell-level cache updates.
* Fixed `sheet.getDependents` crashes due to unhandled undefined custom names.
* Fixed button-triggered command issues in overlapping cells.
* Aligned data validation callback button behavior with Excel.

​**​Miscellaneous​**​

* Flagged invalid sheet name references (e.g., `'!A1`) to match Excel’s parser rules.
* Fixed border loss during upload due to backcolor/pattern composition logic.
* Ensured comments are replaced after sheet JSON serialization/deserialization.
* Restricted table auto-expand on Tab key press in protected sheets (per Excel’s behavior).
* Aligned filter rules with Excel for error-handling cases (`CalcError`).
* Reduced formula manager lag by optimizing custom name calculations.
* Fixed incremental loading mode issues affecting custom formulas and layout rebuild timing.
* Fixed white screen when switching sheets with lazy/incremental loading enabled.
* Fixed `renameSheet` command not updating sheet names as expected.
* Fixed invalid input errors in pivot table data source parsing.
* Fixed shape border copying discrepancies across different screen DPIs.
* Fixed Japanese character handling in sheet names causing file open failures.
* Fixed formula reference range sync issues after table formula adjustments.
* Fixed pivot table custom name parsing errors during refresh with unloaded sheets.
* Fixed designer rich text editor incorrectly parsing bold formatting.
* Fixed cell border style conversions between Excel and SJS formats.
* Fixed an issue where the outline column failed to synchronize its status with text indentation when adding rows to collapsed nodes.
* Fixed an issue where `cancelChanges` in TableSheet didn't properly reset the data property and row order when reloading data through view.fetch(true). This affected hierarchical parent-child structures where same-level operations wouldn't return to their initial state after reloading.