# luckysheet-crdt **Repository Path**: wfeng0/luckysheet-crdt ## Basic Information - **Project Name**: luckysheet-crdt - **Description**: Luckysheet 协同增强版(全功能实现) 请注意:该项目是luckysheet的协同实现版本,主要是实现服务端协同、数据存储,给出 node 集成解决方案,同时对luckysheet做了增强优化,针对源码UI、页面按钮、功能等都做了优化,新增 vchart 图标,前台优化图标协同操作等。 - **Primary Language**: TypeScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 162 - **Forks**: 61 - **Created**: 2024-12-05 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: webui **Tags**: luckysheet-crdt, luckysheet-crdt-demo, CRDT-Luckysheet-server, Luckysheet-chartmix, Luckysheet-vchart ## README

Luckysheet CRDT Logo

Luckysheet CRDT

简体中文 | [English](./README.md) `在线体验`: [https://luckysheet-crdt.netlify.app/](https://luckysheet-crdt.netlify.app/) ---

协同编辑演示

## 项目简介 Luckysheet CRDT 是基于 [Luckysheet](https://github.com/mengshukeji/Luckysheet) 的协同增强版,提供多人实时协同编辑功能。 - **基于原项目做二次开发,以拓展相关功能,修复原有BUG** **核心特性:** - ✅ 多人实时协同编辑 - ✅ 可选数据库持久化 - ✅ 图表协同(VChart/ChartMix) - ✅ Excel 导入导出 - ✅ 单元格图片、打印优化、自定义菜单等增强功能 **技术栈:** TypeScript + Node.js + Sequelize + WebSocket ## 快速开始 ### 方式一:Docker 部署(推荐) ```bash # 1. 克隆项目 git clone https://gitee.com/wfeng0/luckysheet-crdt cd luckysheet-crdt # 2. 复制环境变量 cp env.example .env # 3. 启动服务 docker-compose up -d ``` ### 方式二:本地开发 ```bash # 1. 克隆项目 git clone https://gitee.com/wfeng0/luckysheet-crdt cd luckysheet-crdt # 2. 安装依赖(推荐 pnpm) pnpm install && cd server && pnpm install # 3. (可选)配置数据库 # 编辑 server/src/Config/index.ts # 4. (可选)同步数据库表 npm run db # 5. 启动服务 # 终端1: 前端 npm run dev # 终端2: 后端 npm run server ``` 访问 http://localhost:9000 ## 项目分支 - `master`: 稳定版,可选数据库服务 - `master-alpha`: 开发版,可选数据库服务 - `master-vue`: 完整版,含用户系统和文件系统(需数据库) ## 仓库地址 - Gitee: https://gitee.com/wfeng0/luckysheet-crdt - GitHub: https://github.com/pushu-wf/luckysheet-crdt > ⚠️ **注意**: 最新特性优先在 Gitee 更新 ## 重要说明 ### 开源协议 - 基于 Luckysheet 修改,遵循 Apache 2.0 协议 - **请勿删除源码头部版权声明** ### 源码获取 从 2025-04-15 版本起,**Luckysheet 源码修改部分不再公开**。 - ✅ 现有协同功能完全可用,无需源码 - 💰 如需二次开发,可付费获取源码(199元) - 📧 联系:QQ群 522121825 | Email: 1982392655@qq.com ### 数据库说明 - `master`/`master-alpha`: 数据库可选,无数据库时协同功能正常但数据不持久化 - `master-vue`: 必须配置数据库 ## 主要功能 ### 1. 协同编辑 - 多人实时编辑同步 - 光标位置同步 - 支持撤销/重做协同 ### 2. 图表支持 - VChart 图表(动画流畅、美观) - ChartMix 图表(数据联动) - 图表创建、编辑协同 ### 3. 文件操作 - Excel 导入(基于 luckyexcel) - Excel 导出(基于 exceljs) - 支持协同导入导出 ```js plugins: [ { name: "fileImport" }, // 导入插件 { name: "fileExport" }, // 导出插件 ]; ``` ### 4. 打印优化 - 支持打印当前页/选区/指定页码 - 高清打印优化 - 支持取消网格线 ```js luckysheet.print({mode:'', needToPreview = true, range = "",}); // mode: "sheet" | "areas" | "pages" // 配置打印清晰度 printDevicePixelRatio: 4; // 数值越大越清晰 ``` ### 5. 单元格图片 - 浮动图片/单元格图片 - 两种模式相互转换 - 图片合并自适应 ### 6. 自定义扩展 - **自定义菜单**:添加自定义菜单项 - **自定义快捷键**:配置快捷键回调 - **自定义请求头**:添加 Token 认证等 - **自定义函数**:添加自定义函数 ```js // 自定义菜单 menuHandler: { customs: [ { label: "保存", value: "saveFile", order: 1 }, { value: "divider" }, // 分割线 ]; } // 自定义请求头 requestHeaders: { authorization: "Bearer token"; } // 自定义函数 customFunction: [ { name: "ROUNDBANK", implementation: function () {}, description: {}, }, ]; ``` ### 7. 其他优化 - UI 重构,界面更美观 - 新增斜线边框类型 - 插件依赖本地化(解决内网限制) - 批注导入支持 - 富文本复制粘贴修复 ## 常见问题 ### 1. 提示"协同服务不可用" 检查后端服务是否正常,确保 `/api/getWorkerBook` 接口可访问。 ### 2. 数据库问题 - 确保数据库配置正确 - 执行 `npm run db` 同步表结构 - 确保 `workerbooks` 和 `workersheets` 表有记录 ### 3. data 与 celldata 关系 - `celldata`: `{r, c, v}` 格式的一维数组(存储格式) - `data`: 二维数组(运行时格式) - 初始化时从 celldata 转换为 data ## 参与贡献 欢迎提交 [Issue](https://gitee.com/wfeng0/luckysheet-crdt/issues/new) 或 PR! 加入交流群:

QQ 群

## License Apache 2.0 © Luckysheet CRDT Contributors