# Release Notes for Version 14.0.0

## Content

# Enhancements from the Previous Release

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

* [Cascade Sparkline Total Column](/spreadjs/docs/features/sparkmain/sparkcascade) \- Users can now use the total column indicator in the cascade sparkline\.
* [Support for exporting to HTML](/spreadjs/docs/excelimpexp/export-range-to-html) \- Users can export range or an entire worksheet to html\. You can export any particular range of cells in the HTML format\.
* [SpreadJS Accessibility Support](/spreadjs/docs/getstarted/accessibility-support) \- Users can now get basic accessibility support so that SpreadJS becomes compatible with ADA compliance and screen readers\.
* [Iterative calculation](/spreadjs/docs/formulareference/formulaoverview/calculating-iterative) \- SpreadJS provides support for iterative calculation when the formula in a cell refers to its own cell in spreadsheets to recalculate the formula until a definite result is found\.
* [Support changing color for comment icon](/spreadjs/docs/features/cells/comments) \- Users can now customize cell comments indicator color and size\.
* [Horizontal axis cross value](/spreadjs/docs/features/Charts/ConfigureChartElements/ConfiguringAxes) \- SpreadJS allows users to adjust chart axis crosses\, so that users can move the x\-axis or y\-axis to the point axis value or minimum/maximum axis value\.
* User can now enable or disable ribbon menu according to different protect options when the worksheet is protected.
* [Support Access range](/spreadjs/docs/features/cells/cell-range) \- Users can conveniently choose which way to obtain range information in the sheet area according to their needs\, either using row and column information or range/cell address string\.
* [Support Header Formulas and Sparklines](/spreadjs/docs/features/headers) \- Users can add formula and SparklineEx to both the row header area and column header area of the spreadsheet\.
* [Intervals of Bars of Bar Chart](/spreadjs/docs/features/Charts/ChartTypes/CreateColumnChart) \- Users can customize the appearance of bar and column charts by adjusting the series gap width and their overlapping\.
* [Support Excel Fill Effects and Pattern](/spreadjs/docs/features/Charts/pattern-fill-in-charts) \- Users can customize chart elements by applying pattern\-fill effects\.
* SpreadJS Angular library now supports AOT and Prod compiler.
* [Support copy pasting floating images](/spreadjs/docs/excelimpexp/excelimport/clipboardobjects) \- Users can copy and paste images from Excel to SpreadJS worksheets\.
* [Support customizing doughnut charts hole size](/spreadjs/docs/features/Charts/ChartTypes/CreatingPieChart) \- User can customize doughnut hole size for doughnut charts\.
* SpreadJS now supports the [XLOOKUP](/spreadjs/docs/formulareference/FormulaFunctions/lookup-reference-functions/XLOOKUP) and [XMATCH](/spreadjs/docs/formulareference/FormulaFunctions/lookup-reference-functions/XMATCH) functions.
* Users can now store and define values within a formula using the [LET](/spreadjs/docs/formulareference/FormulaFunctions/math-trig-functions/LET) function.
* The [scroll bar by pixel](/spreadjs/docs/features/workbook/scrollbar/scroll-by-pixel) behavior is now more accurate.
* Support selection for [auto-merge](/spreadjs/docs/features/cells/auto-merge-cells) feature - Customers can use auto-merge with the selection feature of addSpan.
* [Clipboard events for floating object](/spreadjs/docs/scevents/sceventclipboard) \- Users can now use clipboard events for copy\-paste operation of floating objects such as pictures\, charts\, shapes\, slicers\, and custom floating objects\.
* [Multiple-Column Dropdown](/spreadjs/docs/features/cells/cell-dropdowns) \- Users can provide a drop\-down list as well as an editable area using multiple column dropdown cell\.
* [Table binding support](/spreadjs/docs/features/tablegen/tablebind) \- Users can choose how to expand the rows in the table\-binding case\.
* [Set a switch that does not display ###](/spreadjs/docs/features/cells/cellformat/NumberandDateFormat) \- Users can set a switch so that cells do not get masked with '\#\#\#\#'\, scientific notation\, rounded\-up decimals\, etc\. when the column width is not enough\.
* [Incremental Loading Support](/spreadjs/docs/BestPractices/incremental-loading) \- SpreadJS now supports incremental loading to enable high\-performance data processing in worksheets\.
* [Custom Array Formula](/spreadjs/docs/features/formulas/formulascustom) \- Users can return the array in the custom functions\.
* SpreadJS supports [OBJECT](/spreadjs/docs/formulareference/FormulaFunctions/other-functions/object-function) and [RANGEBLOCK](/spreadjs/docs/features/sparkmain/rangeblock-sparkline) functions - Users can set the rangetemplate celltype and bind the object using this functions.
* Designer support for [RangeTemplate](/spreadjs/docs/spreadjs-designer-component/spdesignerwork/setrangetemplatecell) cell type - Users can create a range template cell type through the designer.
* [SpreadJS Support Funnel Chart](/spreadjs/docs/features/Charts/ChartTypes/funnel-chart) \- Users can add a new chart type called the Funnel Chart\.
* SpreadJS supports [PROPERTY](/spreadjs/docs/formulareference/FormulaFunctions/other-functions/property-function) function, so that users can specify the property path to return the value of object.

# Resolved Issues

The following issues have been resolved since the last release.

* The Convert function does not support m/s.
* gc.spread.sheets.angular.ts typescript file is shipped with spread-sheets-angular npm package.
* SpreadJS does not work with Angular 9.
* The shortcut Ctrl + Z can change the active sheet.
* The formula =sss('') does not fire InvalidOperation.
* Vertical scrollbar can not reach bottom when enabling both scrollbarMaxAlign and scrollByPixel.
* Auto scroll behavior is affected when dragging scrollbar.
* The range of filter is not updated correctly while inserting copied column.
* The formula in the validator does not work after changing formula reference from A1 to RC.
* There is an error in exporting Excel.
* The form with auto merge cells is not smooth when the mouse is scrolling in Internet Explorer 11 and edge browsers.
* There are accuracy issues with the y-axis scale of the chart.
* The introduction of style files affects custom cell styles
* The selected state changes when adding rows.
* The loading, calculation and updating for spreadsheet that uses RAND and RANDBETWEEN is very slow.
* The Image distorts during printing.
* The viewport scroll is slower than scrollbar.
* When the sort option is clicked, the page is stuck while using "npm install" demo.
* DataValidation feature does not work for added rows at 0 index in the table.
* The hyper link color appears as gray in SpreadJS worksheet.
* The Text display is incomplete in the edit box of Android phones.
* The scroll feature does not work with frozen rows.
* The excelio.save method does not work correctly in the node environment
* There is copy and paste Issue with Google Sheets while using SpreadJS.
* The conditional formatting is not applied for value starting with '#' character.
* The Chinese styling is lost when saving Excel.
* The Designer\_Source will cause the tag to shift, while modifying the title.
* The Drop-down data is wrong after filtering the table.
* The named Range is not getting updated after inserting the columns.
* After un-hiding, the width of the hidden column is still zero.
* The parameter in the parameter dialog of the SUMIFS function is wrong.
* The Pie and Doughnut chart legends are shown differently than Excel when the Category Axis Labels range contains two or more rows.
* The Designer Format Dialog Font Style is different from Excel.
* The issue of text misalignment occurs when the text of a cell overflows, and the same cell is selected and clicked to merge it to the center.
* The content pasted in the editing is different from the content copied in the editing, in the case of word wrap.
* The imported .xlsx file, SJS and Excel are inconsistent with the display status of the range group button.
* The row selected by the row header cannot be deleted in the online editor.
* The conditional format references changes on changing the priority of the conditional rule.
* The Cell A2 should not change until A1 change, while adding a Custom Function RAND1, setting calcOnDemand, inputting 1 in cell a1, inputting "=RAND1(A1)" in cell A2 and then inserting rows after A3.
* The Auto-merge function is invalid in case of cell overflow.
* The Excel export by SpreadJS gives an error.
* The insertion of table rows and columns does not correctly update the cell styles after loading the table from the data source.
* The hyperlink changes after being imported to SpreadJS.
* The content imported into the online editor is inconsistent with Excel.
* The data source can not be bound to the table after using suspendEvent.
* The exported Excel has style error with outlines and strikethroughs in the sheet.
* The column still does not show even after clicking the unhide option.
* Setting the autoMerge feature leads to a stuck scrollbar.
* In component designer, fromjson causes the page to crash.
* The calculated col/row size is displayed in tooltip while zooming.
* The Spreadsheet is displayed incorrectly when zooming by pinch operation.
* The Font (style) is not exported to Excel properly.
* The Chart Category does not show the leading zero.
* The subtotal formula does not work.
* The Component designer can not delete the row using the context menu.
* The Component designer misses the schema of data-binding by exporting and importing.
* The Export excel with data validation by component designer, the result is inconsistent with setting.
* The named style does not work when the name has '&'.
* The formula is invalid when the formula refers to the cell after dragging the scroller.
* The formula does not adjust while deleting the sheet.
* After setting the mobile scrollbar in the designer, the selection cannot be dragged to right.
* The Text with underline is not copied from Excel to SpreadJS in FireFox.
* The formula does not calculate after setting calcOnDemand to true.
* Some portion of the imported excel file is missing.
* The importing of file takes too much time.
* The POWER function returns a different value than Excel.
* The Component designer Chinese culture does not get completely translated.
* The "=OR(VLOOKUP(K31,Sheet10!A:C,1,FALSE),FALSE)" is giving formula result different in Excel.
* The expanding/collapsing event takes a lot of time to update the sheet.
* While setting Sparkline options in Angular applications, there are errors in the console saying that the options do not exist on typing 'Object'.
* The conditional Formatting breaks while inserting a new row.
* When a cell has value like "a b　 c" and when it is copied (ctrl + c) and pasted (ctrl + v) in the cell, then it is pasted as "a b c".
* The deletion of sheet rows takes a long time.
* The localization of string resources is allowed but the default sheet name is still in English, and cannot be localized.
* There is repeated display of ribbon with designer component.
* The slicer is displayed incorrectly after zooming.
* There is formatting issue on pasting the data from GoogleSheets.