# 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/v17/features/sparkmain/sparkcascade) - Users can now use the total column indicator in the cascade sparkline.
- [Support for exporting to HTML](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/v17/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/v17/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/v17/features/cells/comments) - Users can now customize cell comments indicator color and size.
- [Horizontal axis cross value](/spreadjs/docs/v17/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/v17/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/v17/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/v17/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/v17/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/v17/excelimpexp/excelimport/clipboardobjects) - Users can copy and paste images from Excel to SpreadJS worksheets.
- [Support customizing doughnut charts hole size](/spreadjs/docs/v17/features/Charts/ChartTypes/CreatingPieChart) - User can customize doughnut hole size for doughnut charts.
- SpreadJS now supports the [XLOOKUP](/spreadjs/docs/v17/formulareference/FormulaFunctions/lookup-reference-functions/XLOOKUP) and [XMATCH](/spreadjs/docs/v17/formulareference/FormulaFunctions/lookup-reference-functions/XMATCH) functions.
- Users can now store and define values within a formula using the [LET](/spreadjs/docs/v17/formulareference/FormulaFunctions/math-trig-functions/LET) function.
- The [scroll bar by pixel](/spreadjs/docs/v17/features/workbook/scrollbar/scroll-by-pixel) behavior is now more accurate.
- Support selection for [auto-merge](/spreadjs/docs/v17/features/cells/auto-merge-cells) feature - Customers can use auto-merge with the selection feature of addSpan.
- [Clipboard events for floating object](/spreadjs/docs/v17/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/v17/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/v17/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/v17/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/v17/BestPractices/incremental-loading) - SpreadJS now supports incremental loading to enable high-performance data processing in worksheets.
- [Custom Array Formula](/spreadjs/docs/v17/features/formulas/formulascustom) - Users can return the array in the custom functions.
- SpreadJS supports [OBJECT](/spreadjs/docs/v17/formulareference/FormulaFunctions/other-functions/object-function) and [RANGEBLOCK](/spreadjs/docs/v17/features/sparkmain/rangeblock-sparkline) functions - Users can set the rangetemplate celltype and bind the object using this functions.
- Designer support for [RangeTemplate](/spreadjs/docs/v17/spreadjs_designer_component/spdesignerwork/setrangetemplatecell) cell type - Users can create a range template cell type through the designer.
- [SpreadJS Support Funnel Chart](/spreadjs/docs/v17/features/Charts/ChartTypes/funnel-chart) - Users can add a new chart type called the Funnel Chart.
- SpreadJS supports [PROPERTY](/spreadjs/docs/v17/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.
