返回首页

协同插件基于 SpreadJS 的协作框架(Collaboration Framework)构建,旨在为团队、企业应用或嵌入式 SaaS 工具提供无缝的实时编辑体验,类似于 Excel for Web 或 Google Sheets 中的功能。通过该插件,开发者可以轻松地将多用户协作集成到电子表格应用中,消除同步延迟、简化用户交互,并减少维护数据一致性的复杂性。

image

核心能力

实时协作编辑与冲突解决

  • 支持多用户同时编辑同一工作簿,实现即时更新和双向数据交换

  • 使用 OT 逻辑处理并发编辑,确保无冲突合并,例如当多个用户修改同一单元格时,系统会自动转换操作以保持数据一致性

  • 检测本地工作簿变化,将其转换为操作(Ops)并分组为 ChangeSet,然后通过服务器广播同步到所有客户端

image

用户存在感知和 UI 增强

  • 显示活动用户的光标和选择区域,提供协作意识的 UI 元素,帮助用户实时感知他人操作

  • 支持自定义用户认证、访问控制和版本跟踪,适用于不同文档类型(如电子表格、富文本编辑器)

image

权限管理

  • 配置查看模式(View Mode)和编辑模式(Edit Mode),查看模式限制为只读访问(允许本地 UI 交互如排序或调整大小),编辑模式支持完整同步编辑

image

协作编辑冲突状态处理

  • 内置功能跟踪实时编辑状态,防止冲突(如行删除、列隐藏、排序导致的覆盖)

  • 支持冲突操作处理,包括添加/删除行/列、隐藏行/列、排序和调整行高/列宽

  • 视觉指示状态变化(如“Deleted”、“A1(Hidden)”或新单元格引用),并在编辑完成后决定是否写入值(例如,删除状态下不写入)

  • 支持状态反转:对于非删除操作,如果引起变化的动作被撤销,状态会相应恢复;删除状态不自动反转,以确保内容一致性

image

ChangeSet 和批量操作

  • ChangeSet 是相关 Ops 的集合,代表一个逻辑修改单元,支持原子性应用、冲突解决、历史跟踪和性能优化

  • 默认单模式下,每个命令生成一个 ChangeSet;批量模式允许合并多个同步操作,减少服务器负载

  • API 支持:applyChangeSet 应用 ChangeSet,onChangeSet 监听生成;startBatchOp 和 endBatchOp 用于批量分组

image

协作撤销/重做支持

  • 撤销栈以 Ops 形式存储变化,确保所有撤销动作在客户端间同步

  • 仅影响用户自身操作,不干扰他人;外部操作到达时,会转换撤销结果以适应更新上下文

  • 提供四个事件(CollaborationStartUndo、CollaborationEndUndo、CollaborationStartRedo、CollaborationEndRedo)供开发者自定义处理 UI 和状态变化

    • 注意:在协作模式下,命令的 do/undo/redo 通过 Ops 执行,而非传统命令逻辑

image

对企业价值

image

对开发团队价值

提升团队协作效率

  • 支持分布式团队实时共同编辑表格(如项目计划、财务报表、数据汇总),消除版本混乱和沟通延迟,缩短任务完成周期。

适配企业级场景满足企业级应用的核心需求

  • 多人评审场景: stakeholders 可实时查看并追踪修改,通过光标和选区明确讨论焦点

  • 审计与版本追溯:结合 ChangeSet 的历史记录,实现操作溯源和版本回滚,满足合规性要求

  • 权限管控:基于角色的访问控制(如只读 / 编辑权限)确保敏感数据安全

降低开发复杂度

  • 开发者无需从零构建协同逻辑,通过插件提供的 API(如applyChangeSet、onChangeSet)快速集成实时协作功能,专注于业务场景而非底层同步机制

优化用户体验

  • 冲突自动处理、编辑状态实时提示等功能,减少用户操作失误和认知负担,让协同编辑更流畅自然