协同编辑插件 - 实时协作
重塑 Web 表格效率
原生级 Excel 实时协作:实时共编·权限管控·版本回溯·高度兼容
原生级 Excel 实时协作:实时共编·权限管控·版本回溯·高度兼容
随着数字化转型加速,远程办公渗透率已超40%,跨地域、跨部门协作成为企业常态。表格作为数据协同的核心载体,广泛应用于预算编制、项目管理、检测填报、市场调研等场景,但传统协作模式已难以适配新需求。
从“单人编辑-邮件传输”到“多人并行协作”的转型中,企业普遍面临三大效率瓶颈:
多版本文件来回传输,易产生“最终版”“确认版”等冗余文件,信息不同步导致决策误判。
单人轮流编辑,等待周期长,多人交叉填报场景下,流程推进效率降低 50% 以上。
无法精细分配权限,敏感数据(如财务、检测数据)易泄露,合规性难保障。
针对上述三大协作瓶颈,SpreadJS 协同编辑插件提供全方位解决方案,让表格协作从混乱低效走向有序高效
告别“文件_v2_final”式的混乱命名,SpreadJS 协同插件提供自动化版本管理:
打破单人编辑限制,实现多人实时协作,大幅提升团队效率:
从整体到单元格的多维权限控制,兼顾数据安全与协作自由:
从实时编辑到流程管控,全方位覆盖团队协作场景,提升表格协同效率。
| 行业 | 场景 | 价值 |
|---|---|---|
| 企业财务 | 集团公司预算编制、子公司财务报表汇总 | 财务、业务部门同时填报数据,自动汇总校验,审核流程线上化,预算编制周期从 15 天缩短至 5 天 |
| 项目管理 | 跨部门项目进度跟踪、资源分配统计 | 项目经理、开发、测试团队实时更新任务进度,通过 @提及同步风险问题,项目延期率降低 30% |
| 计量检测 | 检测机构原始数据填报、检定证书审核 | 检测员在线填报数据,审核员实时批注修改意见,证书模板协同设计,数据可追溯且符合行业合规要求 |
| 市场调研 | 多区域市场数据采集、用户调研分析 | 各区域团队同步填报调研数据,实时生成分析图表,避免数据二次录入,调研效率提升 50% |
| 教育科研 | 科研团队实验数据记录、论文数据统计 | 团队成员共享实验数据表格,实时补充数据、修改公式,研究成果迭代效率显著提升 |
支持分布式团队实时共同编辑表格(如项目计划、财务报表、数据汇总),消除版本混乱和沟通延迟,缩短任务完成周期。
开发者无需从零构建协同逻辑,通过插件提供的 API(如applyChangeSet、onChangeSet)快速集成实时协作功能,专注于业务场景而非底层同步机制。
冲突自动处理、编辑状态实时提示等功能,减少用户操作失误和认知负担,让协同编辑更流畅自然。
查看产品文档,快速掌握协同编辑前后端搭建全过程
import * as GC from '@grapecity-software/spread-sheets'
import '@grapecity-software/spread-sheets-collaboration-addon';
import { Client } from "@grapecity-software/js-collaboration-client";
import * as OT from "@grapecity-software/js-collaboration-ot-client";
import { type, bind } from '@grapecity-software/spread-sheets-collaboration-client';
import "@grapecity-software/spread-sheets/styles/gc.spread.sheets.excel2013white.css";
// 注册类型
OT.TypesManager.register(type);
window.onload = async function() {
const workbook = new GC.Spread.Sheets.Workbook('ss');
// 连接到服务器并加入房间
const conn = new Client().connect('room1');
const doc = new OT.SharedDoc(conn);
// 监听错误
doc.on('error', (err) => console.error(err));
await doc.fetch();
// 如果文档不存在,初始化内容
if (!doc.type) {
workbook.getActiveSheet().getCell(0, 0).value("默认内容");
await doc.create(workbook.collaboration.toSnapshot(), type.uri, {});
bind(workbook, doc);
} else {
bind(workbook, doc);
}
}
import express from 'express';
import http from 'http';
import { Server } from '@grapecity-software/js-collaboration';
import * as OT from '@grapecity-software/js-collaboration-ot';
import { type } from '@grapecity-software/spread-sheets-collaboration';
// 注册类型
OT.TypesManager.register(type);
const app = express();
const httpServer = http.createServer(app);
const server = new Server({ httpServer });
const port = 8080;
// 初始化 OT 文档服务
const documentServices = new OT.DocumentServices();
server.useFeature(OT.documentFeature(documentServices));
// 初始化 OT 文档服务
app.use(express.static('public'));
// 启动服务器
httpServer.listen(port, () => {
console.log(`服务器正在监听端口 ${port}`);
console.log(`http://127.0.0.1:${port}/index.html`);
});