SpreadJS 在未来将更关注产品易用性和数据处理能力的提升,在为终端用户带来亲切 Excel 体验的同时,致力于节省企业的研发成本并降低项目交付风险。

SpreadJS V13.0 主要新特性包括:新增 13 种单元格类型、高度开放自定制表格样式、全方位自助式分析表格数据、强化前后端数据交互能力、增强表格数据绑定(支持更多列属性字段)、增强图表(更多图表图例属性、支持错误提示栏、自定义边框、对数轴、趋势线)、支持动态数组(大幅简化计算公式,提高公式运算效率)、公式追踪、自动合并、区域模板等。

在列举纯前端表格控件 SpreadJS V13.0 的新特性之前,请下载最新安装程序,以便同步体验!

追求极致的单元格特性

单元格状态:Cell States

在 SpreadJS V13.0 中,单元格包含以下五种状态,分别是:Normal(正常状态)、Hover(浮动状态)、Invalid(保护状态)、ReadOnly(只读状态)和 Edit(编辑状态)。用户不仅可以更为精确地获取单元格项目和当前状态,还可以通过数据绑定、判断单元格状态等,快速定位、查找、编辑、锁定、筛选单元格的值。

单元格状态:Cell States
单元格状态:Cell States

新单元格类型:Checkbox & RadioBox List

在 SpreadJS V13.0 中,新增了两种单元格类型:选择框和单选列表。

新单元格类型:Checkbox & RadioBox List

新单元格类型: Cell Dropdown

除了选择框和单选列表,在 SpreadJS V13.0 中,还新增了多种下拉列表单元格类型:‘colorpicker’ | 'calendar' | 'time' | 'calculator' | 'month' | 'list' | 'slider' | 'workflow'(颜色拾取器、日程表、时间、日历、月份、列表、切片器、工作流等)

新单元格类型: Cell Dropdown

新单元格按钮: Cell button

在 SpreadJS V13.0 中,用户可以使用一种新的单元格按钮:Cell button(单元格按钮类型)。

新单元格按钮: Cell button

表格 API 增强:表格样式按需修改、高度开放自定制

用户使用 SpreadJS 创建表单和管理数据,将获得前所未有的操纵体验。通过调用 SpreadJS 提供的 API 接口,用户可以在运行时和设计时两种状态下,完成以下操作:

  • 添加行/添加列
  • 删除行/删除列
  • 在表格中获取插入行、删除行、脏数据
  • 将 Excel 表转换为数据范围
SpreadJS表格 API 增强
SpreadJS表格 API 增强
SpreadJS表格 API 增强
SpreadJS表格 API 增强

表格 UI 交互增强:全方位分析表格数据,顺利完成前后端交互

表格数据交互,作为用户界面设计中不容忽视的重要组成部分,其目的是通过构造结构化数据,让用户更易读取、更易比较。

SpreadJS 作为一款纯前端电子表格控件,充分考虑到了这一应用场景,并全面增强了表格数据交互分析能力,其功能具体体现在:

  • 自动扩展 Auto Expand:input / copy-cut & paste / dragfill / dragdrop
  • 调整大小手柄 Resize Handler
  • 滚动时表头显示 Show Header when Scroll
  • 更方便的表格选择 Selection
  • 更智能的表格导航 Navigation
  • 滚动时在列标题上显示表标题
SpreadJS表格 UI 交互增强
SpreadJS表格 UI 交互增强
SpreadJS表格 UI 交互增强
SpreadJS表格 UI 交互增强
SpreadJS表格 UI 交互增强
SpreadJS表格 UI 交互增强

表格数据绑定增强:支持更多列属性字段

SpreadJS V13.0 的表格数据绑定将支持更多列属性字段,这样做的好处是:用户在进行表格数据绑定时,更获得比此前更丰富的属性支持,如格式化、单元格类型、值(值转换函数)等。

SpreadJS 工作簿数据绑定支持以下属性:

  • 名称
  • 格式化
  • 单元格类型
  • 值(值转换函数)
  • 宽度
  • 可见
  • 可调整大小
  • 分页符
  • 显示名称

SpreadJS 表格数据绑定支持以下属性:

  • 名称
  • dataField
  • 格式化
  • 单元格类型
  • 值(值转换函数)
SpreadJS表格数据绑定增强

图表增强:支持更多图表图例属性、错误提示栏、自定义边框、对数轴、趋势线等

SpreadJS V13.0 的图表功能得到大幅提升,不但支持更多的图表图例属性,如自定义位置、字体颜色、大小等,还新增了多种图表功能,如错误提示栏、自定义边框、对数轴、趋势线、悬停动画、符号等。

图表图例属性:支持字体颜色、大小和更多字体

在 SpreadJS V13.0 中,通过更改字体颜色、大小和字体的能力,开发人员能够自行匹配图表图例与应用程序的整体外观样式,而无需额外调整,这样做的好处是:可以为仪表板中的所有组件,创建统一的外观样式。如下是为图例添加颜色、fontFamily、fontSize 设置:

SpreadJS图表增强

新图表属性:错误提示栏

在 SpreadJS V13.0 中,使用图表显示数据时,可以显示每个点的误差范围。借助此项新功能,您可以更改图表中显示的错误类型、样式和数量,从而一目了然的观测出图表数据的误差范围与标准偏差。

新图表属性:自定义边框

某些应用场景中,在图表周围添加边框以将图表与应用程序的其余部分区分开非常有用。借助此项新功能,开发人员可以自定义图表的边框,包括颜色、宽度、透明度和破折号样式,这样做的好处是:使开发人员可以将图表设计与应用程序的其他部分进行匹配。

SpreadJS新图表属性:自定义边框
SpreadJS新图表属性:自定义边框

新图表属性:对数轴

在绘制值差异巨大的数据时,我们很难以任何可读方式显示。但在 SpreadJS V13.0 中,借助图表增强功能,图表(不包括直方图、箱线图和瀑布图)可以支持值轴的对数刻度。这样在比较差异巨大的数据时,可以以更加易读的方式显示图表数据:

SpreadJS新图表属性:对数轴

新图表属性:趋势线

在预测数据趋势时,我们都希望能直观地查看数据趋势变化。通过 SpreadJS 新的图表增强功能,为柱形图、条形图、折线图、散点图和面积图添加了趋势线辅助。开发人员可以为图表创建 6 种不同类型的趋势线,如线性、指数和多项式。使用趋势线可以更轻松地根据数据(例如销售变化趋势)预测未来价值。

如下分别是 SpreadJS 的线性趋势线、指数趋势线和多项式趋势线:

SpreadJS新图表属性:趋势线
SpreadJS新图表属性:趋势线
SpreadJS新图表属性:趋势线

支持动态数组:大幅简化计算公式,提高公式运算效率

Excel 2019 推出了动态数组函数,用于简化复杂计算公式:使用动态数组,返回值将自动“输出”到相邻单元格中(未使用的)。用户只需编写一个简单的公式,而不是编写复杂的数组公式就可解决多单元格问题。

在 SpreadJS V13.0 中,也将支持动态数组功能。

SpreadJS支持动态数组

SpreadJS 实现的动态数组效果如下:

SpreadJS支持动态数组
SpreadJS支持动态数组

支持公式追踪:可快速查看公式中引用的单元格数据

在使用公式时,有时需要了解公式中引用了哪些单元格的数据,这就涉及到公式追踪的操作。在 SpreadJS V13.0 中,用户可以利用公式追踪 API,快速且方便的构建数据关系拓扑图,以便进行审查、数据钻取、可视化显示等。

SpreadJS支持公式追踪
SpreadJS支持公式追踪

新增事件:ColumnChangingEvent & RowChangingEvent

当用户对工作表执行 Delete/Insert/Hide/Unhide 等操作时,如果希望在执行操作之前触发一个事件,该事件可以用来确认对象的数据,并控制该操作是否继续执行。此时,新增的这两个事件就可以派上用场。

行为增强:Advanced Resize

在 SpreadJS V13.0 中,Advanced Resize 添加了一种调整大小的方法 onlyNextTo 。它与一般调整大小的方式不同,使用 onlyNextTo 调整大小只会改变当前列/行和下一个可见列/行的大小。

SpreadJS行为增强

自动合并:自动合并相邻单元格的相同文本

SpreadJS 支持自动合并。

如果相邻单元格的文本内容相同并且不在任何范围内,它们将自动合并。SpreadJS 的自动合并可以应用于任何指定范围,包括所选区域、行、列和整个工作表。

例如,原始数据如下:

SpreadJS自动合并

在行方向自动合并后:

SpreadJS自动合并

在列方向自动合并后:

SpreadJS自动合并

区域模板:将工作表的范围指定为模板,并使用该模板绘制相似区域

SpreadJS 为客户提供了一个范围单元格类型。这种新的单元格类型允许用户将工作表的范围指定为模板,然后使用该范围来绘制具有单元格值的多个相似区域。

将样式模板应用于单元格后,可以将 RangeTemplate 设置为单元格样式的单元格类型。RangeTemplate 将使用单元格值作为数据源,解析指定范围的 bindingPath。

这样做的好处是:

  • 客户可以通过更改模板来更改批处理片段显示模式。
  • 客户可以轻松显示具有相同结构的一组数据。 
  • 客户可以在任何地方创建模板工作表,然后创建 JSON / fromJSON,并设置工作表范围以便轻松复用。

其他功能增强

本次发布版本也包括其他功能增强。关于发布更新的更多细节,请参考发布说明