<p>作为葡萄城旗下备受青睐的 JavaScript 电子表格控件,<strong>SpreadJS</strong> 始终以"类 Excel 体验、低代码开发、企业级性能"为核心,赋能开发者快速构建贴合业务场景的表格应用。</p>
近日,SpreadJS 迎来 V18.2 版本更新,聚焦实时协作、视觉定制、操作效率三大维度,推出 beta 版协同插件、多主题设计器、LAMBDA 数据转换等十余项核心特性,同时全面适配现代前端框架。本文将带您深度拆解这些新功能,看看它们如何解决团队协作、界面定制与开发效率的痛点。
一、实时协作新纪元:协同插件(Beta)正式登场
在多人协作场景中,”版本混乱、同步延迟、冲突难解决”是长期困扰团队的难题。
SpreadJS V18.2 引入协同插件 (SpreadJS Sheets Collaboration Add-on),基于自研协作框架打造,为电子表格带来媲美 Office Excel for Web 的实时编辑体验,目前处于 beta 阶段,将根据用户反馈持续优化。
1. 模块化架构:灵活扩展,适配多场景
协同插件的核心是”协同框架 + 表格协同插件“的双层架构,兼顾通用性与表格场景的专业性:
- 底层:协同框架(Collaboration Framework)
支持表格、富文本、代码编辑器等多文档类型协作,包含三大核心模块: - js-collaboration:处理实时双向数据交换与消息广播,确保用户操作即时同步
- js-collaboration-ot:基于操作转换(OT) 算法解决并发冲突,集成数据库适配器,避免多用户编辑同一单元格时的数据混乱
- js-collaboration-presence:提供用户存在感感知,实时显示活跃用户的光标、选区,让协作状态可视化
- 上层:表格协同插件(Sheets Collaboration Add-on)
针对表格场景优化,提供即插即用的能力,包含两个核心包: - spread-sheets-collaboration:定义表格专属 OT 类型,处理单元格编辑、行列增减等场景的冲突转换
- spread-sheets-collaboration-addon:将本地修改转换为”操作集(Ops)”并分组为”变更集(ChangeSet)”,通过服务器同步至所有客户端
2. 核心能力:覆盖协作全流程需求
协同插件从”编辑、感知、权限、追溯”四个维度,构建完整的协作体验:
(1)实时编辑与冲突自动处理
多用户可同时编辑同一工作簿,系统通过 OT 算法自动合并操作。例如:当用户 A 修改 B2 单元格为”100″,用户 B 同时修改 B2 为”200″时,插件会根据操作顺序智能合并,避免数据覆盖,且双方视图实时更新。
(2)用户存在感可视化
通过不同颜色的光标和选区,清晰标记当前活跃用户,结合”正在编辑”的状态提示,让团队成员明确他人操作焦点,减少无效沟通。
(3)精细化权限管控
支持”查看模式”与”编辑模式”切换:
- 查看模式:只读权限,允许本地排序、调整列宽等 UI 交互,但修改不会同步
- 编辑模式:完整编辑权限,操作实时同步至所有用户
(4)协同撤销/重做与 ChangeSet 管理
- 撤销栈以 Ops 形式存储,仅影响用户自身操作,不干扰他人;
- ChangeSet(变更集)作为逻辑修改单元,支持原子性应用、冲突解决与历史追溯,结合 API 可实现操作溯源与版本回滚(如 applyChangeSet 应用变更、onChangeSet 监听变更)。
3. 应用价值:从团队效率到企业合规
- 提升协作效率:分布式团队可实时共同编辑项目计划、财务报表,消除”邮件传文件、版本号混乱”的问题,任务完成周期缩短 30%+;
- 适配企业场景:支持多人评审、审计追溯(符合金融、政务等行业合规要求),权限管控确保敏感数据安全;
- 降低开发成本:开发者无需从零构建协同逻辑,通过插件 API 快速集成,专注业务场景而非底层同步机制。
注意:当前 beta 版本暂不支持绑定功能、数据管理器(数据图表/甘特表等)及浮动对象,正式版将逐步完善 |
---|
二、视觉与定制升级:设计器主题更灵活
为适配不同使用场景与品牌风格,SpreadJS V18.2 对设计器主题进行全面增强,提供”预设+自定义”双体系,满足从基础使用到深度品牌化的需求。
1. 三大预设主题:覆盖主流使用场景
设计器内置 3 种主题,可根据环境与用户习惯快速切换:
主题类型 | 核心特点 | 适用场景 |
---|---|---|
Light(默认) | 高对比度、清晰易读,现代简约风格 | 日常办公、明亮环境下的长时间编辑 |
Dark | 深色基调,减少屏幕蓝光刺激 | 低光环境、夜间办公,降低视觉疲劳 |
Classic | 传统电子表格视觉风格 | 习惯旧版 Excel 界面的用户,降低学习成本 |
2. 三种自定义方法:精准匹配品牌形象
基于 Light/Dark 主题扩展,支持通过 API、CSS、JavaScript 调整视觉属性(背景色、圆角、阴影等),实现”表格界面与产品品牌一体化”。
(1)API 动态定制(推荐)
通过 setTheme() 方法实时修改主题,未定义属性保持默认,示例代码:
// 自定义主题:浅蓝背景、深灰文本、6px 圆角
GC.Spread.Sheets.Designer.setTheme({
colorBackground: "#F0F4F8",
colorForeground: "#2D3436",
borderRadiusM: "6px",
shadow8: "rgba(142, 148, 156, 0.1) 0px 2px 4px, rgba(142, 148, 156, 0.06) 0px 1px 2px"
});
// 重置为预设主题
Designer.setTheme(null);
// 获取当前主题配置
let currentTheme = GC.Spread.Sheets.Designer.getTheme();
console.log(currentTheme.colorBackground); // 输出 "#F0F4F8"
(2)CSS 静态覆盖
在全局 CSS 中定义主题变量,适合无需动态切换的场景:
:root {
--sjs-color-background: #F0F4F8;
--sjs-color-foreground: #2D3436;
--sjs-border-radius-m: 6px;
--js-shadow-8: rgba(142, 148, 156, 0.1) 0px 2px 4px, rgba(142, 148, 156, 0.06) 0px 1px 2px;
}
(3)JavaScript 动态更新
通过操作 DOM 切换主题,支持用户自主选择风格:、
// 动态设置主题属性
document.documentElement.style.setProperty(
GC.Spread.Sheets.Designer.ThemeTokens.colorBackground,
'#F0F4F8'
);
document.documentElement.style.setProperty(
GC.Spread.Sheets.Designer.ThemeTokens.colorForeground,
'#2D3436'
);
三、效率倍增:设计器功能深度优化
SpreadJS V18.2 围绕”数据处理、操作便捷性”优化设计器功能,让复杂任务一步完成,减少重复操作。
1. LAMBDA 公式:一键转换单元格区域
借助”转换单元格(Transform)”功能,可将单参数 LAMBDA 公式直接应用于选中区域,支持按”单元格、行、列、整个区域”设置作用域,转换后源区域清空,样式保持不变,仅更新值。
示例 1:按列汇总销售数据
- 源区域:产品 A/B/C 三个月销量(B2:D4);
- 公式:=LAMBDA(x, SUM(x))(对 x 区域求和);
- 作用域:按列(By Column);
- 效果:一键计算出每个产品的总销量,无需手动输入多次 SUM 公式。
示例 2:拆分订单详情文本
- 源区域:包含”产品,数量;产品,数量”格式的订单详情(如”苹果,5个;香蕉,10个”);
- 公式:=LAMBDA(x, TEXTSPLIT(x, “;”, “,”))(按分号和逗号拆分文本);
- 作用域:按单元格(By Cell);
- 效果:自动拆分出”产品”和”数量”两列,无需手动分列。
2. 名称管理器:排序筛选,快速定位
在包含大量自定义名称的工作簿中(如财务模板),V18.2 为名称管理器新增排序(升序/降序) 与筛选功能,支持按”名称、引用位置、范围”筛选,快速找到目标名称,避免滚动查找的繁琐。
3. 字体选择器:直接编辑,无需跳转
此前修改字体需在下拉框中选择,V18.2 支持在字体选择器组件内直接输入字体名称(如”微软雅黑”),系统实时匹配结果,提升操作效率。
4. 表格与 DataTable:双向无缝转换
支持普通表格(Regular Tables)与数据表(Data Tables)的双向转换,两种实现方式满足不同需求:
- API 驱动:通过 convertToDataTable(普通转数据)、convertFromDataTable(数据转普通)实现程序化控制;
- UI 操作:在设计器中右键表格,直接选择”转换为数据表”或”转换为规则表”。
该功能解决了”前端编辑表格、后端绑定数据”的衔接问题,数据更新更灵活。
四、交互更流畅:UI&UX 体验全面提升
从细节优化出发,SpreadJS V18.2 解决了用户日常操作中的”小痛点”,让交互更符合直觉。
1. 数据验证下拉搜索:长列表”秒定位”
当数据验证下拉列表包含数百个选项时(如员工姓名、产品型号),传统滚动查找易出错。V18.2 新增搜索框,输入关键词实时过滤匹配选项,快速锁定目标值。
2. 工作表列表搜索:多标签”快找表”
对于包含几十上百个工作表的工作簿(如多部门报表、项目多模块表格),在工作表标签栏新增搜索入口,输入工作表名称关键词即可即时定位,告别”翻页找表”。
3. 复选框:单点击”秒切换”
此前操作复选框需多步点击,现在只需单次点击单元格内的复选框,即可切换”选中/未选中”状态,与 Excel 操作逻辑一致,适合数据标记、任务勾选等场景。
4. 批注填充色:视觉定制更灵活
支持自定义批注背景色,可根据数据重要性设置颜色(如浅黄色标注提醒、浅蓝色标注说明),提升批注辨识度,同时对齐 Excel 操作习惯,降低用户切换成本。
5. 形状文本方向:多语言排版适配
为”形状”组件新增垂直文本 和从右到左(RTL) 方向支持,满足中文竖排标题、阿拉伯语/希伯来语等 RTL 语言的排版需求,拓宽多语言项目应用场景。
五、数据可视化升级:新增漏斗图与树状图
SpreadJS V18.2 新增两种高频图表类型,助力更直观的数据分析与展示。
1. 漏斗图:追踪流程转化效率
以”顶部宽、底部窄”的漏斗形态,展示各阶段数据递减趋势,核心应用场景:
- 销售漏斗:潜在客户→意向客户→报价客户→成交客户,定位流失率高的环节;
- 访客转化:首页访问→产品页浏览→加入购物车→支付,优化转化链路;
- 招聘流程:简历投递→初筛→面试→录用,评估招聘效率。
支持多维度自定义(代码/设计器可视化操作):
- 基础样式:漏斗类型(标准/金字塔)、调色板、透明度;
- 结构参数:顶部宽度、底部宽度、颈部高度;
- 布局方向:横向/纵向、是否反转。
2. 树状图:展示层级数据占比
以嵌套矩形展示层级结构数据,矩形大小与数值成比例,便于比较不同类别占比。例如:按”地区→产品类别→单品”展示销量,直观看出哪个地区的哪类产品贡献最大。
支持自定义调色板、边框样式、提示框(tooltip)等,可通过代码或设计器”检查器”配置。
六、生态兼容:适配现代开发框架
为跟上前端技术发展,SpreadJS V18.2 全面适配主流框架,确保开发流畅性:
- 支持 Next.js 15:兼容服务器端渲染,与现代 React 应用无缝集成;
- 支持 React 19:适配新 Hook 与并发渲染改进,提升 React 项目性能;
- 数据透视表全列数据源:可直接使用整列(如 Sheet1!C:D)作为数据源,简化数据引用;
- 报表插件优化:模板设计时可暂时显示隐藏的行/列,便于编辑与验证。
总结:SpreadJS V18.2 赋能”协作+效率+体验”
SpreadJS V18.2 并非简单的功能堆砌,而是围绕”用户实际需求”的精准升级:
- 对团队:协同插件打破时空限制,实时协作提升效率;
- 对开发者:主题定制、框架适配、API 简化降低开发成本;
- 对终端用户:LAMBDA 转换、交互优化让操作更流畅。
目前,SpreadJS V18.2 已正式发布,协同插件(beta)可通过葡萄城官网下载试用。如果您在使用中遇到问题或有功能建议,欢迎通过官方技术社区反馈,我们将持续迭代优化,打造更贴合企业需求的电子表格控件。
立即前往 葡萄城官网 下载 SpreadJS V18.2,体验全新特性!
</div>