# Release Notes for Version 17.1.0

## Content

## Enhancements from the Previous Release

<span lang="EN-US" style="box-sizing: content-box; margin: 0px; padding: 0px; transition: filter 0.5s ease-in-out 0s; line-height: 25.6px; color: black;">The following features and enhancements have been incorporated into this version of the product.</span>

* Added [autoFit support in ReportSheet](/spreadjs/docs/v17/) to resize the rows and columns in a report automatically.
* Enhanced support to effectively manage and validate data changes using [data entry events](/spreadjs/docs/v17/) within the ReportSheet.
* Tablesheet now [displays row numbers in an independent row header](/spreadjs/docs/v17/), similar to the row numbers displayed in a worksheet.
* Added [undo/redo support](/spreadjs/docs/v17/) to reverse and reapply changes to the tablesheet data.
* Added support to [enable defined column functionality](/spreadjs/docs/v17/) for tablesheet that allows you to add, update, or remove a column with meaningful column types to design the table at runtime.
* SpreadJS now supports [tablesheet grouping layouts](/spreadjs/docs/v17/features/tablesheet/tablesheet-operations/tablesheet-grouping) like *Tabular* and *Condensed*, in addition to the existing Outline mode.
* Added support to [create charts using structured table referencing strategies](/spreadjs/docs/v17/).
* Enhanced support to [create unordered (bulleted) and ordered (numbered) lists](/spreadjs/docs/v17/features/cells/SettingRichTextCell#create-bullet-list) in rich text formatting.
* SpreadJS now can [save the r1c1 style formula](/spreadjs/docs/v17/features/spreadjs-file-format#save-files) in the JSON or SJS file for better export performance.
* Users can now [change the cell-text direction](/spreadjs/docs/v17/features/cells/SetVerticalTextDirectioninaCell#right-to-left-text-direction) to right-to-left by setting the style's textDirection property.
* The existing [R.V function](/spreadjs/docs/v17/) is enhanced to get spilled cell values on the current page.
* SpreadJS charts are now enhanced to [apply cell number formatting using linked cells](/spreadjs/docs/v17/) to dynamically update the format of chart elements such as data label, axis, and tooltip.
* SpreadJS provides support for the [FileUpload cell type](/spreadjs/docs/v17/) to upload any file or image.
* Users can now [apply conditional formatting rules to a specific area](/spreadjs/docs/v17/), such as the *Current selection* or *This worksheet*, to focus on relevant data.
* Set cell references in the data labels and [display the values of the selected cell range as data labels](/spreadjs/docs/v17/features/Charts/ConfigureChartElements/ConfiguringDataLabel#displaying-cell-range-as-data-labels) in the charts.
* Added support to [set different x-axis values](/spreadjs/docs/v17/) for each data series in a scatter/bubble chart.
* Users can now [customize the color schemes of the charts](/spreadjs/docs/v17/) using the ColorScheme property to suit their needs and preferences.
* SpreadJS now supports [right-to-left orientation](/spreadjs/docs/v17/) by setting the rightToLeft option of the worksheet.
* Added support to [hide formula cells](/spreadjs/docs/v17/features/worksheet/celllock#hide-formula-in-a-protected-worksheet) in a protected sheet.
* Add support for [renaming customs names](/spreadjs/docs/v17/features/formulas/formulaname#update-custom-names) which updates all referenced formulas.
* Copy the [chart](/spreadjs/docs/v17/)/[shape](/spreadjs/docs/v17/)/[slicers ](/spreadjs/docs/v17/)as an image to the clipboard like Excel.
* Added support to [set the interval between axis labels in a chart](/spreadjs/docs/v17/features/Charts/ConfigureChartElements/ConfiguringAxes#set-axis-label-intervals) using the tickLabelSpacing property.
* The existing pivot table grouping/ungrouping feature has now been improved to support the [grouping of time type fields at fixed time intervals](/spreadjs/docs/v17/features/pivot-table/group-and-collapse#group-date).
* SpreadJS now supports [incremental calculation](/spreadjs/docs/v17/) that divides the entire calculation into segments during execution when the calculation task is huge.
* SpreadJS now allows you to [copy and paste formatters](/spreadjs/docs/v17/excelimpexp/excelimport/clipboardobjects) to and from Excel and SpreadJS.
* Added support to manage custom [table](/spreadjs/docs/v17/)/[pivot table](/spreadjs/docs/v17/)/[slicer ](/spreadjs/docs/v17/features/pivot-table/pt-slicer/pivot-table-item-slicer#custom-item-slicer-styles)themes by retrieving, adding, removing, and updating table styles.
* SpreadJS allows you to [move/insert columns or rows by dragging](/spreadjs/docs/v17/) their respective headers.
* Set [document properties](/spreadjs/docs/v17/) within the workbook.
* Adjust the [dialog's position](/spreadjs/docs/v17/spreadjs_designer_component/customizations/add_new_dialog#control-dialog-position) in the designer by setting the dialogOpeningPosition parameter to *screenCenter* or *designerCenter*.
* Enhanced support to formula adjustment logic when inserting or deleting rows/columns to improve performance.
* Improved support to use the isMergeUpdate parameter in the updateExternalReference method to [update the partial of the external source value](/spreadjs/docs/v17/formulareference/formulaoverview/CrossWorkbookFormula#update-reference).
* Users can [customize the behavior of the Save File dialog](/spreadjs/docs/v17/) when importing and saving files in the Spread Designer component.
* SpreadJS Designer provides a UI option to [show the border while printing](/spreadjs/docs/v17/spreadjs_designer_component/print-designer/print-settings-designer#sheet) the worksheet.
* SpreadJS enhances the fill dialog for a better user experience.
* SpreadJS updated the license model to support IPv6.
* SpreadJS now supports [NextJS version 14](/spreadjs/docs/v17/javascript_frameworks/spreadjs-with-nextjs).
    To create a Next.js application, ensure the Node.js version installed should be greater than v18.17.
* [Angular 17](/spreadjs/docs/v17/javascript_frameworks/angular) is now supported.
* Updated Angular demo samples to standalone components usage.

## Resolved Issues

<span style="box-sizing: content-box; margin: 0px; padding: 0px; transition: filter 0.5s ease-in-out 0s; line-height: 25.6px; color: rgb(34, 34, 34); font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">The following issues have been resolved since the last release:</span>

* Resolved the performance issues while using conditional formatting rules manager to manage multiple conditional formats in SpreadJS Designer.
* The ClipboardPasted event now works properly when the cell content contains double quotes.
* Resolved the issue where the cellClick event was not triggered when clicking on the disabled area on mobile devices.
* Resolved Pivot table style issues.
* Resolved issue with exported HTML content not wrapping cell text.
* Resolved the issue where an error is thrown when the browser was resized while the Formula tab was active and did not use any ReportSheet resources.
* Resolved performance issue where tips appeared only for the first cells in AutoMerge.
* Resolved performance issue where the text box is set to obscure the text when the font is tilted to the right.
* When double-clicking the fill handle, the cell now responds as expected.
* Resolved the issue where clicking the Preview option would crash the browser.
* Resolved the issue where the pivot table could not find the maximum value for the date.
* The data validator's inputMessage() method with a line break code now displays correctly when importing an Excel file using the SheetsIO module.
* The function list present in the formula bar now appears correctly.
* Selection or active state is now working properly when using the hidden or veryHidden option when importing an Excel or SJS file.
* The HighlightInvalidData property now appears correctly.
* The display effect of a tree diagram is now consistent with Excel.
* The formatting result is now displayed correctly when printing or exporting the report to PDF.
* When the autoSize comment is set to true, the cell content is now displayed as expected.
* No error occurred while exporting Excel files.
* Resolved the performance issue where deleting all content in the rich text editor did not erase the cell contents.
* Resolved the issue where SJS files created and saved by the designer could not be opened, and *Incorrect File Format* is prompted.
* Borders are now displayed as expected in the exported Excel file.
* Resolved the issue when importing and exporting Excel files resulted in an extra text box.
* Resolved the performance issue where *Convert Text to Columns Wizard* didn't convert the value to the Date value.
* The GETPIVOTDATA function now works properly with the custom culture.
* The Window function now returns the expected results after changing data for the second time.
* Resolved the inconsistency issue between SpreadJS and Excel for displaying charts.
* Resolved the issue where PrintInfo is missing from the worksheet when the workbook instance is created without a host element.
* Resolved the inconsistency issue between SpreadJS and Excel when setting null values for charts.
* SpreadJS name manager value computation is now consistent when set to TRUE.
* The width of the chart series border is now consistent with Excel after configuration.
* Resolved performance issue with the SpreadJS Designer ribbon dropdown popup.
* SpreadJS filtering behavior is now consistent as expected.
* Resolved the performance issue where there is a picture below the table and adding a row to the table does not shift the picture down.
* No error is thrown while accessing page setup options for custom culture using the SpreadJS Designer component.
* Resolved the issue where formulas' Optional parameters are not marked as optional in the brief description.
* The chart series is now consistent with the Excel after updating the chart data range.
* Resolved the issue where Name Manager didn't show the value field when deleting a row.
* Resolved the issue where the Name Manager filter displayed an error as *Name with Errors*.
* Resolved the issue where the copy-pasting in cross-spreadsheets splits the content into two cells.
* Resolved the issue where the cantered style of the exported Excel file was lost and the font size increased.
* Resolved the issue where the line break could not be deleted using the backspace key after pasting a multiline cell.
* Resolved the issue where images could not be exported to PDF.
* Resolved the issue where the DragDrop event did not undo properly after a series of operations.
* Resolved the issue where the designer's shortcut Ctrl + A is invalid after resetting the workbook.
* Resolved the issue where the *Select Locked Cell* and *Select Unlocked Cell* protection option settings were lost after exporting XLSX.
* Resolved the issue where the style of the vertical axis title becomes ineffective after setting the border of the chart area.
* Resolved the issue where the data range of the chart was lost when exporting JSON and then importing.
* Resolved the performance issue with the table auto-fill feature.
* Resolved the issue where inserting a row caused the table formula to change.
* Resolved the performance issue when exporting the XLSX file required refreshing the pivot table style to match SpreadJS.
* Resolved the inconsistency issue in an active cell behavior between SpreadJS and Excel with the pivot table.
* Resolved the issue where the conditional formatting icon set inversion icon and actual effect were incorrect.
<br>
    <br>
