news 2026/9/23 10:33:19

SpreadJS v19.2 正式发布!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpreadJS v19.2 正式发布!

我们很高兴地宣布SpreadJS v19.2正式发布。本次版本聚焦于帮助开发者构建更贴近 Excel、更适合数据分析、更具协作能力的 JavaScript 电子表格应用。

新版本扩展了「模拟分析」能力,新增方案(Scenario)支持;为设计器功能区组件带来强大的键提示(KeyTip)能力;让数据透视表可以直接连接 DataManager 数据;增强了协作服务器对基于 DataManager 绑定的支持;并在工作簿、单元格格式、GanttSheet、ReportSheet 以及前端框架支持等方面带来了一系列实用更新。

准备好了解细节了吗?让我们一起看看 SpreadJS v19.2 带来了哪些新特性。

立即下载最新版 SpreadJS


设计器增强

功能区键提示(Ribbon KeyTips)

SpreadJS 设计器现已支持与 Excel 一致的功能区键提示。按下AltF10后,文件菜单和功能区各选项卡上会显示可见的按键标签,用户可以直接通过键盘切换选项卡、打开菜单并执行命令。

开发者可以在功能区配置中启用或禁用键提示、自定义激活键,并定义自定义的 KeyTip 值。这一特性提升了键盘可访问性,也让高频用户在设计器中拥有更高效的键盘工作流。

通过右键菜单重命名工作表

设计器的工作表标签右键菜单中新增了「重命名」命令。它与原有的双击重命名方式互为补充,让工作表重命名操作更容易被发现和使用。

CJK 格式化与本地化改进

设计器新增了对 Excel 风格格式化转义语义(formatter escape)在 CJK 环境下的支持,提升了本地化数字格式输入的兼容性。打印纸张大小与单位的默认值也可以跟随区域文化设置而变化,例如在日语文化下默认使用 A4,而不再始终默认为 Letter。

保护选项类型定义补全

设计器的类型定义现已包含此前缺失的工作表保护(protection)相关选项,改进了 TypeScript 支持,让设计器配置在强类型应用中更易于使用。


公式

进度迷你图(Progress Sparkline)

全新的、由公式驱动的进度迷你图,让用户可以直接在单元格中展示进度。开发者可以用这种紧凑的可视化形式呈现任务完成度、KPI 状态、目标跟踪和运营看板,而无需额外构建独立的图表对象。

FILTERXML 函数

SpreadJS v19.2 新增对FILTERXML函数的支持。这一与 Excel 兼容的函数可以使用 XPath 表达式从 XML 文本中提取数据,帮助电子表格应用直接在公式中处理结构化的 XML 内容。

例如,假设单元格 A1 中包含以下 XML 字符串:

<catalog> <product id="1" category="electronics">Laptop</product> <product id="2" category="electronics">Phone</product> <product id="3" category="clothing">T-Shirt</product> </catalog>
公式结果说明
=FILTERXML(A1,“//product/@id”){1; 2; 3}返回所有 id 属性值。
=FILTERXML(A1,“//product[@category=‘electronics’]”){“Laptop”; “Phone”}返回 electronics 分类下的产品。
=FILTERXML(A1,“//product[@id=‘2’]”)Phone返回 id=“2” 的产品。

至此,对于需要导入 Excel 工作簿、或使用公式解析基于 XML 的数据载荷的应用而言,又少了一处公式兼容性缺口。

东亚全角公式输入

公式输入现已更好地支持东亚全角语法。在日语和中文的 Excel 环境中,用户经常通过本地化输入法输入全角括号或相关的公式字符。SpreadJS v19.2 通过支持与 Excel 一致的转换与处理逻辑,改进了这类本地化公式输入体验。


单元格

类 Excel 聚焦单元格(Focus Cell)

SpreadJS v19.2 新增聚焦单元格功能。这是一个工作簿级别的视觉辅助特性,可用可配置的颜色和透明度高亮当前活动单元格所在的行与列。它能让终端用户在处理大型工作表时更容易保持方位感,尤其适用于宽幅财务模型、复杂报表或高密度运营数据表等场景。

聚焦单元格的行为类似于一层 UI 导航层,而不是被存储的单元格样式。它不会修改工作表数据,不会被导出到 Excel,也不会出现在打印或 PDF 输出中。同时它可以与选区、合并单元格、隐藏行列以及设计器工作流配合使用。

开发者可以通过工作簿选项启用该功能,设计器用户则可以在「视图」选项卡中进行开关。

面向 CJK 与数字文本的填充序列改进

「填充序列」现已更好地支持以数字结尾的字符串,包括 CJK 输入中使用的全角数字。这改进了本地化数据录入场景下大家熟悉的 Excel 式拖拽填充体验,例如生成物料标签、单据编号或区域编码等。

单元格圆角边框

SpreadJS v19.2 为工作表单元格、跨行列区域(span)、区域和表头新增了圆角边框支持。这对于报表式布局、分组表单区块、工资单类文档、仪表盘,以及其他需要直接在表格中呈现圆角矩形分区的业务表单尤为实用。

圆角边框通过borderRadius成为单元格样式状态的一部分,区域既可以统一应用圆角,也可以只对可见的外侧角应用圆角。该实现与现有的边框优先级规则、受支持的线型、隐藏行列、JSON/SJS 持久化以及 PDF 导出均可协同工作。

设计器端的支持让这一特性无需编写代码即可被发现和使用,而 API 则为开发者提供了对单个单元格和区域的精确控制。


模拟分析

方案分析(Scenario)

SpreadJS v19.2 通过新增方案支持,进一步扩展了「模拟分析」能力。方案允许用户保存命名的输入值集合,将其应用到工作簿,重新计算相关公式,并快速对比不同的业务结果。

与 Excel 中按工作表划分作用域的模型不同,SpreadJS 的方案是工作簿级别的,这使其在现代电子表格应用以及未来的共享视图工作流中更加灵活。方案可以跨越多个工作表,跟踪用于还原操作的基础值,在插入、删除、移动或排序行列时更新已存储的引用,并可参与工作簿序列化。

开发者可以使用方案管理器 API 获取、设置、应用、还原、移除和激活方案。激活「方案模式」后,后续的单元格编辑会被自动捕获到方案中,让终端用户创建方案更加轻松。

方案面板与设计器支持

设计器新增了方案管理 UI,用户可以通过熟悉的界面查看、应用和管理方案。这让业务用户无需编写代码,即可使用模拟分析来对比不同计划、预测、预算或备选假设。


数据

工作表、单元格与表格绑定到 DataManager

SpreadJS v19.2 强化了工作表绑定与 DataManager 之间的连接。工作表级绑定、单元格绑定、表格绑定路径(table binding path)以及表格绑定现在都可以使用由 DataManager 提供的数据,为复杂的电子表格应用带来更统一的数据模型。

这减少了重复的数据管道代码,也使得「业务数据由 DataManager 集中管理、同时通过电子表格 UI 呈现与编辑」这类应用更容易构建。

TableSheet 排序与筛选 API

TableSheet 现在为排序和筛选操作提供了 API,而此前这些操作主要通过 UI 交互完成。开发者可以通过编程方式应用筛选和排序选项、清除先前的状态,从而构建更可控的 TableSheet 工作流。

这些 API 让 TableSheet 更容易集成到自定义仪表盘、工作流工具以及由服务端驱动的应用逻辑中。


图表

图表数据标签字体样式

图表数据标签现在支持更丰富的字体样式。用户可以通过设计器或图表 API 配置标签的字体名称、字号、颜色、加粗、倾斜、下划线、删除线等相关格式,让图表与 Excel 输出效果及应用程序的设计要求更加一致。

图表坐标轴标题文字方向

SpreadJS v19.2 通过支持坐标轴标题文字方向,进一步提升了与 Excel 图表的兼容性。从 Excel 导入的、坐标轴标题文字为竖排或旋转排布的图表,现在可以在 SpreadJS 中更忠实地呈现;同时设计器也新增了配置文字方向的相关控件。

绘图区自定义

图表现在支持绘图区(plot area)自定义,包括填充、边框和布局设置。这让开发者和设计器用户对图表呈现方式拥有更强的控制力,也更容易与 Excel 工作簿中可用的格式保持一致。


打印

工作表中的自定义打印线

分页符与打印预览工作流现在更易于定制。SpreadJS v19.2 支持通过 CSS 自定义打印线的外观,开发者可以调整分页线的颜色和宽度,以更好地匹配应用 UI 或报表工作流。

像 Excel 一样按区域文化设置纸张大小与单位

打印纸张大小与单位的默认值现在可以跟随区域文化设置,例如在日语文化下默认使用 A4,而不再始终默认为 Letter。


数据透视表

直接使用 DataManager 的表与视图创建数据透视表

数据透视表现在可以直接使用 DataManager 的 Table 和 View 作为数据源。这样就不再需要先把 DataManager 数据落地到工作表或 TableSheet,然后再用数据透视表进行分析。

数据透视表可以使用单个 DataManager Table,也可以使用 DataManager View(包括基于关系(relation)的视图结果)。DataManager 依然负责数据获取、关系维护和数据变更,而数据透视表消费其产出的表状数据来构建和刷新 PivotCache。

开发者可以通过autoRefresh控制自动刷新行为,使用updateSource()显式刷新数据源,并可以选择 JSON/SJS 保存输出中是否包含已物化的外部数据源 PivotCache 数据。

自定义分类汇总

SpreadJS v19.2 为数据透视表的行字段和列字段新增了**自定义分类汇总(custom subtotals)**支持。这提升了与 Excel 的一致性,也让用户在构建分析型透视报表时能更精细地控制分类汇总行为。


协作服务器

协作支持基于 DataManager 的绑定

基于 DataManager 的绑定也获得了协作能力支持。多个用户可以同时操作已绑定的工作表、单元格和表格,并在整个协作会话中保持绑定配置及相关状态的一致性。

最新的 V19 SP2 规范覆盖了工作表绑定与基于 DataManager 的表格绑定协作,并针对由远程 DataManager 数据支撑的表格绑定补充了额外行为。对于本地 DataManager 数据,协作支持查看、编辑以及绑定区域的相关操作;对于远程数据,SpreadJS 会同步绑定配置与表格状态,而远程数据的一致性仍由应用后端及其刷新流程负责。


AI 助手

SJS.AI.QUERY 支持多参数

SJS.AI.QUERY函数现在支持传入多个提示词(prompt)和数据参数。这使得构建更丰富的 AI 辅助电子表格公式更加容易——可以把多段提示词和多个数据区域组合到一次 AI 请求中。

包含多个提示词与数据区域的示例公式:

=SJS.AI.QUERY("清理这些杂乱数据", B4:B14, "根据列标签提取数值", C3:F3)

数据图表(DataCharts)

DataCharts 日期坐标轴

DataCharts 现在为 BI 和分析场景提供了更丰富的日期坐标轴行为。日期字段既可以按原始日期使用,也可以分组为派生的日期粒度,如年、季度、月或日。坐标轴渲染既可以使用连续日期刻度,也可以使用有序类别刻度,让开发者对数据分组和视觉呈现都拥有控制权。

这让 DataCharts 更适合时间序列分析、财务仪表盘、销售趋势报表以及其他以日期为驱动的可视化场景。

DataCharts 网格绑定(Trellis Binding)

SpreadJS v19.2 为 DataCharts 新增了网格绑定(Trellis Binding),也就是通常所说的「小倍数图(small multiples)」。现在可以基于行和列的分类字段,将单个数据集拆分为重复排列的多个图表面板,从而更容易在地区、产品类别、部门、年度、季度等维度之间对比数值。

网格绑定可适用于多种图表类型,并支持行绑定、列绑定、多级分组、共享坐标轴或每个单元格独立坐标轴、空单元格处理,以及针对网格表头和网格线的样式选项。

DataCharts 正负值配色

DataCharts 现在可以为柱形、条形和面积类可视化分别设置正值和负值的颜色。这让差异值、盈亏、现金流以及其他高于或低于基准线的数值更容易一眼读懂。

DataCharts 线条样式(Line Aspect)

折线图、面积图、范围面积图、堆积面积图、百分比堆积面积图、雷达图以及填充雷达图等 DataCharts 获得了更丰富的线条样式选项。开发者可以在受支持的情况下选择默认、样条(spline)、阶梯(step)和贝塞尔(Bezier)等渲染方式,让图表更贴合预期的分析风格和类 Excel 的输出效果。

DataCharts 其他增强

本次发布还为空间受限时的绘图区与图例新增了自定义布局行为,将颜色编码与详细信息编码分离以让图表配置更清晰,并扩展了 DataCharts 各图表类型的配置覆盖范围。


ReportSheet

报表生成事件与临时文本

ReportSheet 现在提供了围绕报表生成过程的事件,并支持在报表生成期间显示临时文本。这些改进帮助开发者在报表生成可能耗时较长的应用中,提供更清晰的加载反馈。

工作表与 ReportSheet 水印

水印增强同样适用于 ReportSheet 场景,让开发者对文档状态标识和报表呈现拥有更强的控制力。


GanttSheet

GanttSheet 支持进度线(Progress Line)

GanttSheet 新增进度线支持,帮助项目经理和应用用户基于选定的状态日期(status date)直观呈现项目状态。该特性包含状态日期显示、符合条件任务的进度点,以及贯穿图表区域的连接进度线。

这让 GanttSheet 在项目跟踪、进度评审和状态汇报等工作流中更加实用。


UI 与交互增强

增强项说明预览
类 Excel 的筛选按钮位置改进了筛选行为,采用更贴近 Excel 的策略,将筛选按钮放置在所选区域的第一行。这可以减少那些期望所选区域第一行作为表头行的用户产生的困惑。
在设计器中重新应用筛选设计器新增对类 Excel「重新应用筛选(Reapply)」的支持,允许用户在底层数据发生变化后重新应用已有的筛选和排序条件。这包括工作表筛选、表格筛选,以及按颜色排序等筛选菜单中的排序状态。
支持 commitInput 命令新增一个内置命令,可在不移动焦点的情况下提交单元格编辑器的输入,从而支持「按 Enter 仅保存输入」这类自定义键盘工作流。commandManager.setShortcutKey("commitInput", GC.Spread.Commands.Key.enter, false, false, false, false);
触摸选择指示器自定义为触摸选择指示器提供了自定义入口,让移动端/触摸场景能更好地匹配产品 UX 要求。

框架支持

支持 Angular 22

SpreadJS 已完成全面测试,并确认与 Angular 22 兼容。开发者可以放心升级 Angular 应用,而无需修改任何 SpreadJS 集成代码。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/23 10:31:44

STM32实战指南:42个项目从入门到独立开发

1. 为什么“42个实战项目”是STM32学习的最优路径1.1 从“看懂”到“做出来”之间隔着什么很多人学STM32的经历都差不多&#xff1a;买块开发板&#xff0c;跟着教程点灯、按键、串口打印&#xff0c;每个例程单独跑都没问题&#xff0c;但一旦要自己做一个完整的东西&#xff…

作者头像 李华
网站建设 2026/9/23 10:31:01

Python+pygame制作小游戏--俄罗斯方块(三)

上接 Python+pygame制作小游戏--俄罗斯方块(二) 六、让游戏动起来 产生了方块后,接着就要让它自由下落。 首先在类class Tetris中添加定义一些基本的参数 class Tetris():def __init__(self,x0,y0):... self.speed = fps …

作者头像 李华
网站建设 2026/9/23 10:29:15

怎么在看视频的时候直接向 AI 提问视频里的内容?疑问不用憋到看完

摘要&#xff1a;看视频时冒出的疑问&#xff0c;往往来不及问就过去了。抖音精选的 AI 问问让你在看视频时直接向 AI 提问视频内容&#xff0c;即时答疑&#xff0c;不用切屏去查。本文讲清看视频“提问难”的三个痛点、判断功能好用的三条标准&#xff0c;以及具体怎么用&…

作者头像 李华
网站建设 2026/9/23 10:28:59

基于Java Agent实现动态操作目标进程:从Attach到字节码增强

简介&#xff1a;面向需要对进程进行动态控制与监控的Java开发者&#xff0c;这份资料以“代理&#xff08;Agent&#xff09;技术”为主线&#xff0c;围绕代理框架设计、部署、动态监控与操作执行等环节&#xff0c;整理出一个完整可运行的工程方案&#xff0c;适用于系统管理…

作者头像 李华