
SpreadJS V16 SP2 is here! This release includes several exciting enhancements and new features, including:
GanttSheet Add-On Beta
Formula Editor Panel
Accessibility
Cell.altText Property
Calculation Enhancements
SUMIFS and xLOOKUP Performance Enhancement
Excel Manual Calculation Options
Cross-sheet Reference Support in FormulaTextBox
Workbook Enhancements
Cell defaultValue Property
Date and Integer Range Cell Types
Excel Styles Copy Optimization
TableSheet Enhancement
Window Aggregation Function
Designer Enhancements
Default Active Ribbon Tab
Excel Themes, Colors, and Fonts
Excel File Password
Read-Only Names in Name Manager
Angular 16 Support
v16.1 - May 3, 2023
Read Release Notes | Read Release Blog
PivotTable Enhancements
SubTotal Option for Single Fields
GetPivotData functions for PivotTable references
PivotTable Sorting
TableSheet Enhancements
Bind DataManager Views to a Worksheet Table
Data Source Spread Transformation
Spreadsheet Filters
Reordering
Header Style Rule
Calculation Enhancements
Auto Formatting for Formula Results
RegEx Functions
Quick Typing for Cross Worksheet Formulas
Shape Enhancements
Sparkline Functions
Text Box Shape
Z-Order Methods and Designer Support
Form Control Enabled Property
Chart Enhancements
Gauge Charts
Invert If Negative
Workbook Enhancements
Input Mask Style
Password-protected Worksheets
Resizable Filter Window
Word Line-Breaking
ComboBox AllowFloat
Insert Cut Cells for Tables
Display Zero
Checkbox CellType Line Break
Excel Styles Copy Optimization
Preserve WordWrap
Column/Row Header Layout Enhancement
Style Decoration Icons
SetRowCount and SetColumnCount Data Protection
Framework Support
Next.js Support
Nuxt Support
Angular 15 Support
Designer Component Accessibility
Designer Enhancements
Resizable Conditional Formatting and Named Range Dialogs
Font-Size Drop-Down Enhancement
SpreadJS v16.2(Service Pack 2)刚刚发布,我们有一些很棒的新功能可以分享!我们在此版本中添加了以下功能:

在 SpreadJS 16.2 版本中,我们添加了名为 GanttSheet 的新附加组件的 Beta 版本。这是 SpreadJS 中专门工作表内的完整甘特图实现。它有自己的标题并使用形状来绘制甘特图任务。甘特表提供多种选项,包括:
GanttSheet 构建在具有甘特图行为和电子表格用户界面的快速数据绑定 DataTable 视图之上。它可以绑定到具有特定架构的 DataManager 视图。
此可选附加组件的版本处于 Beta 阶段,因此直到 v17 版本才会完全支持它。

现在,使用公式编辑器面板,在 SpreadJS 中查看、编辑和调试又长又复杂的公式变得更加容易。这个新组件提供以下功能:
公式文本将根据标记类型以不同颜色显示:
![]()
可以将又长又复杂的公式格式化为具有适当缩进和嵌套的单独行:

公式大纲可以折叠和展开:

可以使用建议的函数、自定义名称和枚举参数快速、正确地输入公式:



当用户将鼠标悬停在函数名称上或键入函数时,将显示包含函数信息的工具提示:

将标记公式错误,例如不正确的参数和不匹配的括号:

您可以通过更改主题 CSS 来更改公式编辑器的外观,其中包括标记、工具提示、背景、前景和引用范围等属性。



公式的不同语法元素(例如引用范围)会相应突出显示,以增强可读性。

为了向 SpreadJS 添加更多辅助选项,我们在此版本中添加了 Cell.altText 属性。此属性允许您设置当可访问性设置为 true 时屏幕阅读器将读取的特定文本:
sheet.getCell(1, 1).value(1000).altText("Sales amount is {value}");
自定义替代文本的辅助功能 | 特点| SpreadJS JavaScript 演示
SUMIFS 和 XLOOKUP 函数在性能方面得到了增强,因此使用这些函数的工作簿在某些情况下应该更快。
SpreadJS现在支持手动计算。设置后,公式不会自动计算;相反,公式只会在编辑或输入新公式时进行计算。这是通过新的CalculationMode枚举来支持的,该枚举默认为auto,并且可以设置为manual。
通过自动计算,如果相关单元格(这些脏单元格中引用的单元格)已更改,则将计算所有脏单元格(已更改的单元格)。手动计算时,只计算直接改变过的单元格;引用已更改单元格的单元格将不会被计算。
在 SpreadJS 中,用户可以通过键入“=”在单元格中输入公式。通常,用户只能使用光标选择要在该公式中引用的单元格,只要它们位于同一张纸上即可。在此版本中,我们添加了在编辑单元格公式以引用其他工作表中的单元格时单击不同工作表选项卡的功能。可以根据您的喜好通过更改 CSS 来启用或禁用此功能。


我们添加了一个属性,允许您设置单元格的默认值。通常,当单元格中没有值时,单元格将显示空白。在此版本中,您可以将任何值或公式设置为单元格的默认值。您可以使用简单的属性获取和设置默认值:
- activeSheet.getCell(0, 0).defaultValue(20);
- console.log("DefaultValue of cell(0,0) using defaulValue method: " + activeSheet.getCell(0, 0).defaultValue());
日期时间选择器和滑块已得到增强,可支持用户定义时间段或范围,其中包括:
此增强功能表示一个可以存储为单元格值的简单对象,其开始和结束属性可以是日期或整数。
日期时间选择器 | 特点| SpreadJS JavaScript 演示
滑块| 特点| SpreadJS JavaScript 演示
SpreadJS 中的复制样式已得到增强,可以匹配 Excel。现在,SpreadJS 将为单元格生成命名样式并将它们添加到 HTML 剪贴板内容的顶部,而不是为每个单元格添加相同的样式定义,从而减少命令大小。
此版本中添加的 WINDOW 函数提供 TableSheet 中的数据分析。这些函数可以在特定窗口(与当前行相关的一组表行)上执行聚合、排名和分析计算,并为每行生成结果。这允许您同时使用聚合值和非聚合值。这些新功能如下:
Windows 函数实现的最佳示例是运行总计。您可以使用 Windows 函数创建某些数据的运行总计,并使用 PARTITIONBY 函数等来获取每年的运行总计或类似的内容:

我们在此版本中对设计器组件所做的第一个增强是能够在功能区中设置默认的活动选项卡。通过在配置中设置默认的活动选项卡,该特定选项卡将在加载 SpreadJS 设计器组件时打开。
- // Use the activeRibbonTab method of the designer component to set the active ribbon tab.
- var config = GC.Spread.Sheets.Designer.DefaultConfig;
- var designer = new GC.Spread.Sheets.Designer.Designer(document.getElementById("designerHost"), config);
- let currentActiveRibbonTab = designer.activeRibbonTab();
- if (currentActiveRibbonTab !== "insert")
- {
- designer.activeRibbonTab("insert");
- }

我们在设计器中添加了“主题”、“颜色”和“字体”按钮,使用户可以切换主题或颜色集以影响引用这些主题颜色的所有形状、图表和内置单元格样式。

SpreadJS 支持使用密码打开和保存 Excel 文件,我们现在已将该功能添加到文件对话框中的 SpreadJS 设计器中。
在此版本中,现在可以在名称管理器中将名称设置为只读。这可以防止您的用户更改工作簿中的特定名称。

SpreadJS 现在支持 Angular 16 用于我们的 Angular 包装器和设计器组件。
这些是我们在 v16.2 版本中添加到 SpreadJS 中的许多功能。