# Release Notes for Version 14.1.0

## Content

# Enhancements from the Previous Release

The following features and enhancements have been incorporated in this version of the product.

* Users can now set the [position of axis data labels](/spreadjs/docs/features/Charts/ConfigureChartElements/ConfiguringAxes#set-axis-label-position) in charts.
* [Arrange shapes using alignment, distribution, and snap options](/spreadjs/docs/features/UnderstandingShapes/arrange-shapes) \- Users can align multiple shapes\, distribute them\, and snap them to other shapes or grids\.
* [TrailingRow without having blank space after data rows](/spreadjs/docs/features/rows-columns/frozen) \- Users can specify whether to have frozen trailing rows or columns or both in a sheet\.
* [Set a limit on the number of undo and redo operations](/spreadjs/docs/features/worksheet/undo) \- Users can get the undo and redo stack as well as set a limit on number of undo and redo operations\.
* [Change tab strip position and width](/spreadjs/docs/features/workbook/tabstrip) \- Users can set the position of tab strip relative to the workbook and change the width of tab strip\.
* [Paste or skip data in invisible range](/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) \- Users can now control whether to paste the data in an invisible range or not\.
* [Support to import Excel file with customizable date format](/spreadjs/docs/excelimpexp/excelimport/LocalebasedDateFormatImported) \- Users can now customize the date format based on system locale settings while importing an Excel file\.
* SpreadJS supports [WEBSERVICE](/spreadjs/docs/formulareference/FormulaFunctions/web-functions/webservice) function which helps in fetching data from a web service on the Internet or Intranet.
* SpreadJS supports [FILTERJSON](/spreadjs/docs/formulareference/FormulaFunctions/web-functions/filterjson) function which helps in parsing data from a JSON string.
* [IMAGE sparkline](/spreadjs/docs/features/sparkmain/image-sparkline) \- Users can now place an image in a cell using IMAGE sparkline function\.
* SpreadJS now supports enhancing [Check Box list](/spreadjs/docs/features/cells/celltypes/check-box-list-cell), [Radio Button list](/spreadjs/docs/features/cells/celltypes/radio-button-list-cell)
    , and [Check Box](/spreadjs/docs/features/cells/celltypes/cellcheckbox) cell width size.
* Users can [set the orientation of chart axis](/spreadjs/docs/features/Charts/ConfigureChartElements/ConfiguringAxes#set-axis-orientation).
* Users can now [change the hover backColor of cell button](/spreadjs/docs/features/cells/cell-buttons) when it is visible or enabled.
* Users can create [histogram sparkline](/spreadjs/docs/features/sparkmain/histogram-sparkline) to represent the frequency distribution of a dataset.
* Users can create [gauge KPI sparkline](/spreadjs/docs/features/sparkmain/gauge-kpi-sparkline) to visualize the performance of metrics with respect to KPI values.
* Users can now add [Pivot Tables](/spreadjs/docs/features/pivot-table) and perform various pivot related operations in SpreadJS.
* Users can now use [fill effects](/spreadjs/docs/features/UnderstandingShapes/fill-effects) such as solid fill, gradient fill, picture fill, and texture fill in shapes.
* [Hyperlinks on Shapes](/spreadjs/docs/features/UnderstandingShapes/hyperlinks-on-shapes) \- Users can add hyperlinks on shapes\, connector shapes\, or group shapes\.
* [Camera Shape](/spreadjs/docs/features/UnderstandingShapes/camerashape) \- Users can add dynamic images of a referenced area in a spreadsheet\.
* Users can add and [edit text in shapes](/spreadjs/docs/features/UnderstandingShapes/text-on-shapes).
* Users can now add [different types of compound lines](/spreadjs/docs/features/UnderstandingShapes/formattingshapes) in shapes to customize their appearance.

# Resolved Issues

The following issues have been resolved since the last release.

* Cell editing works properly when cell contains formula.
* Picture size is retained after Excel file import.
* @ Operator does not apply extra parenthesis automatically.
* Alt Code Symbols are correctly exported to PDF.
* The contents of a cell are correctly displayed in imported Excel file.
* Characters are shown properly after registering font files and exporting the workbook as pdf.
* "Invalid range" error message is no longer thrown while adding chart based of non-contiguous ranges for the Category Axis.
* Custom date format is correctly applied to imported Excel files.
* The cell aspect ratio is retained when printing using fitPagesWide or fitPagesTall options.
* The value calculated by formula is retained when calcOnDemand is set to true and cell value is updated.
* Designer lib template & table icon position is fixed.
* Exporting shapes to PDF retains their position when the zoom factor is not 100%.
* Optimized CalcEngine performance.
* Formula result in SpreadJS is same as Excel.
* The name box displays correctly after initializing two designers.
* Formula recalculates after being modified.
* Shape's Gradient fill settings, "Radial" and "Linear", can be exported to PDF.
* The fields coincide with active blue box when designing a template.
* Hover action of Button Cells is retained after setting a background color.
* Pivot Table collapse operation does not cause group headers to disappear.
* SpreadJS updates all dependent cells.
* The sheet is updated after deleting any data.
* Setting the style name through API works correctly.
* Setting styles using the Designer component works correctly.
* The CellChanged event is called only once when changing the cell from Dialog.
* The style of exported Excel file is retained.
* After importing an Excel file, the formula displays correct information.
* Formula result is same as Excel after deleting rows.
* AT\_AsyncFunction Function works correctly.
* Padding is scaled with zoom-in or zoom-out operations.
* Date formatting is based on locale settings on importing an Excel file.
* Other styles are retained after increasing the font size in cell.
* Fixed different Formula results using SpreadJS and Excel.
* Consistent results after exporting PDF.
* Percentage format symbol is displayed correctly in edit mode if clicked in the gray area after edit mode.
* Improved unhiding row performance.
* Font style is applied when adding style from Cell Style dropdown.
* DateTime Object is a new value in CellChanged event argument.
* Designer's copy button works correctly when used on images.
* Excel file is exported correctly after setting the conditional format.
* Label Margin works properly in Designer.
* Exporting ssjson from v14.0.8, importing it in v14.0.10 successfully exports Excel.
* In Pivot table Number Type Field, show details works correctly.
* Hyperlink in column headers works properly.
* Setting rich text by contextMenu with different font color, and change font color in formatCell dialog, the cell font foreColor also changes.
* When change the rich text color in richText and formatCell dialog, after changing the current theme, the rich text font color also changes according to the theme.
* Setting rich text and use named style in ribbon (Style -> Cell styles), the cell foreColor and font also change according to the named cell style.
* ComboBox does not display value when text is empty and EditorValueType is value.
* Clicking a spreadsheet moves scroll position in intended behavior when using in iframe and Firefox.
* The font is retained after printing.
* Top border is applied to areas that share a border with merged cell.
* An event is bound to workbook properly.
* The formula is calculated correctly after importing in Excel.
* IsNA function works properly if the refer cell's result is "#NA".
* The backColor of the cell is consistent after importing to Excel.
* Demo scrollbars work properly when dragging and clicking out of the instance.
* Table theme style is retained after auto fitting row using header.
* No exception console message is thrown after exporting an Excel file.
* The hidden sheet is not displayed when checking incrementalLoading during Excel file import.

# Breaking Changes from the Previous Release

The following breaking change has been introduced prior the last release of the product.

* The name argument of [LET function](/spreadjs/docs/formulareference/FormulaFunctions/math-trig-functions/LET) should not contain a '.'. All the pre-existing Excel and ssjson files using LET function and containing '.' in the variable names will be silently upgraded to valid variable names. SpreadJS will convert the '.' to '\_', to match the updated Excel behavior.