# 基于 Vue3 + Express + MySQL + ONLYOFFICE 的 Excel 数据协同平台实战:模块生成、数据分析、可视化、在线编辑、角色权限一体化

  ## 一、项目背景

  在很多业务系统里,Excel 仍然是最常见的数据载体。

  尤其是在医疗统计、运营报表、业务台账、模板化录入这些场景中,大家经常会遇到几个典型问题:

  - Excel 模板很多,但系统模块开发成本高
  - 数据上传后只能“存”,不能很好地分析和展示
  - 文件修改仍然依赖本地 Excel,协同效率低
  - 不同人员看到的模块和可操作范围不一样,但系统权限颗粒度不够
  - 业务变化快,希望“换一个模板就能生成一个新模块”

  基于这些问题,我做了一个 Excel 驱动的数据协同分析平台。
  这个项目的核心目标很明确:

  让 Excel 模板驱动业务模块生成,让上传的数据可分析、可视化、可在线编辑,并且通过角色控制不同
  模块的权限。

  项目地址:

  Gitee:
  https://gitee.com/zzYk/gfread-excel.git (https://gitee.com/zzYk/gfread-excel.git)

  ———

  ## 二、特别说明:本项目代码完全由 AI 生成

  这次项目还有一个很特别的点:

  这个项目的代码实现,完全由 AI 生成。

  这里的“完全由 AI 生成”不是简单指:

  - 让 AI 写几个函数
  - 让 AI 补几个页面
  - 让 AI 改几个 bug

  而是指这个项目从功能整理、结构分析、后端接口、前端页面、权限模型、在线编辑接入、README 文档、部署脚本,到后续的角色扩展、菜单调整、发布材料整理,基本都由 AI 协助完成。

  我在这个过程中主要承担的是:

  - 提需求
  - 明确业务目标
  - 决定模块边界
  - 校验结果是否符合预期
  - 逐步迭代修正方向

  而具体代码产出,包括:

  - Vue 页面
  - Express 接口
  - MySQL 初始化逻辑
  - RBAC 权限实现
  - ONLYOFFICE 接入
  - Docker 和启动脚本
  - README 和发布文档

  基本都由 AI 来生成和修改。

  这件事对我来说的意义不只是“省时间”,而是让我更直观地感受到:

  AI 已经不只是代码补全工具,而是可以真正参与一个完整项目交付过程的开发协作者。

  当然,也要客观看待:

  - AI 可以大幅提升实现效率
  - 但业务判断、需求拆解、结果验收仍然需要人来把关
  - 尤其是权限、部署、数据流程这类地方,不能只看“能跑”,还要看“是否真的合理”

  所以这个项目也可以看作一次比较完整的实践:

  用 AI 完成一个真实业务系统级项目。

  ———

  ## 三、项目实现了什么

  这个项目不是单纯的“Excel 上传工具”,而是把一整套业务闭环做出来了。

  ### 1. 模块生成

  系统支持上传 Excel 模板,自动完成以下事情:

  - 分析工作表结构
  - 识别表头行
  - 推断字段类型
  - 自动生成模块定义
  - 自动生成对应的数据表
  - 形成一个可独立使用的动态业务模块

  也就是说,很多原本需要后端建表、前端配页面的事情,现在通过模板就能快速完成。

  ### 2. 数据分析

  目前项目已经实现两类分析能力:

  - 出院统计分析
  - 动态模块数据分析

  支持的能力包括:

  - 上传历史查看
  - 文件级明细查询
  - 批次数据追踪
  - 记录详情查看
  - 模块数据汇总

  ### 3. 数据可视化

  为了让业务人员不仅能“看表”,还能“看趋势”,项目接入了 ECharts,实现了:

  - 柱状图
  - 多指标对比图
  - 多维度展示
  - 出院统计图表分析
  - 动态模块文件级图表展示

  这样上传后的 Excel 数据不再只是落库存储,而是可以直接转成业务可视结果。

  ### 4. 在线编辑

  项目集成了 ONLYOFFICE,支持对动态模块上传的 Excel 文件进行在线编辑。

  具体流程如下:

  - 用户打开文件
  - ONLYOFFICE 在线编辑
  - 编辑完成后回调后端
  - 后端重新校验模板结构
  - 同步写回数据库
  - 记录版本号、同步状态、最后保存时间

  这部分能力非常适合需要“边看边改边同步”的业务场景。

  ### 5. 人员权限

  项目引入了 RBAC 权限模型,支持:

  - 用户登录
  - 自定义角色
  - 用户绑定角色
  - 按模块控制权限
  - 按动作控制权限

  动作粒度包括:

  - view
  - create
  - edit
  - delete
  - manage

  也就是说,不同角色可以看到不同模块,也可以在同一模块里拥有不同操作权限。

  ———

  ## 四、项目的核心亮点

  我觉得这个项目最有价值的地方,不在于某一个页面,而在于这几个能力被串成了一条完整链路。

  ### 亮点 1:Excel 模板驱动业务模块生成

  传统做法是:

  - 提需求
  - 设计表结构
  - 写后端接口
  - 写前端页面
  - 联调上线

  而这个项目把其中一部分标准化了:

  上传模板 -> 自动识别字段 -> 自动生成模块 -> 直接可用

  这对模板驱动型业务非常实用。

  ### 亮点 2:分析、可视化、在线编辑不是割裂的

  很多系统只能做到“上传 Excel 存起来”,但这里做到了:

  - 上传后可以分析
  - 分析后可以可视化
  - 可视化后还可以回到文件在线编辑
  - 编辑后又能重新同步数据库

  这是一个真正闭环的数据协同流程。

  ### 亮点 3:权限不是写死的

  这次我把权限系统做成了 角色可自定义,而不是简单固定成几个死角色。

  管理员可以:

  - 新增角色
  - 修改角色名称和说明
  - 删除未绑定人员的角色
  - 为角色配置模块动作权限

  这比“写死系统管理员、业务人员、只读人员”更适合真实业务演进。

  ### 亮点 4:这是一次完整的 AI 工程化实践

  这个项目让我更深地体会到,AI 在开发中的价值已经不只是“帮写代码片段”,而是可以在以下环节持续
  参与:

  - 项目结构梳理
  - 模块设计
  - 页面实现
  - 接口编写
  - 权限体系补充
  - 启动脚本优化
  - 部署文档整理
  - 发布材料准备

  也就是说,AI 开始具备“参与完整交付链条”的能力。

  ———

  ## 五、技术栈

  ### 前端

  - Vue 3
  - Vite
  - Element Plus
  - Axios
  - ECharts
  - xlsx

  ### 后端

  - Node.js
  - Express
  - MySQL
  - Multer
  - xlsx

  ### 第三方服务

  - ONLYOFFICE Document Server

  ———

  ## 六、项目架构设计

  项目结构大致如下:

  guofengTest/
  ├── backend/
  │   ├── src/
  │   │   ├── controllers/
  │   │   ├── routes/
  │   │   ├── middleware/
  │   │   ├── models/
  │   │   ├── services/
  │   │   ├── utils/
  │   │   └── app.js
  │   ├── uploads/
  │   └── Dockerfile
  ├── frontend/
  │   ├── src/
  │   │   ├── views/
  │   │   ├── components/
  │   │   ├── router/
  │   │   ├── config/
  │   │   └── utils/
  │   └── Dockerfile
  ├── docker-compose.yml
  ├── README.md
  └── start.sh

  整体设计思路是:

  - 前端负责页面交互、图表展示、权限入口控制
  - 后端负责模板分析、动态建表、数据导入、权限校验、ONLYOFFICE 回调
  - MySQL 负责业务数据存储
  - ONLYOFFICE 负责在线编辑能力

  ———

  ## 七、权限模型设计

  权限这块我采用的是比较标准的 RBAC(基于角色的访问控制)。

  关系如下:

  - 用户 -> 角色
  - 角色 -> 模块
  - 模块 -> 动作权限

  当前项目里主要模块包括:

  - 出院统计
  - 模块生成
  - 动态模块
  - 人员权限
  - 通用数据导入
  - 通用数据展示

  每个模块支持如下动作权限:

  - 查看
  - 新增
  - 编辑
  - 删除
  - 管理

  这样做的好处是:

  - 前端菜单可以按权限显示
  - 页面按钮可以按权限控制
  - 后端接口也可以按权限拦截
  - 不会出现“前端隐藏了按钮,但接口仍然能直接调用”的问题

  ———

  ## 八、部署方式

  这个项目支持两种方式部署。

  ### 1. 本地开发部署

  #### 后端

  cp backend/.env.example backend/.env
  cd backend
  npm install
  npm start

  #### 前端

  cp frontend/.env.example frontend/.env
  cd frontend
  npm install
  npm run dev

  默认访问地址:

  - 前端:http://localhost:5173
  - 后端:http://localhost:3000/api

  默认账号:

  用户名:admin
  密码:admin123

  ### 2. Docker 一体化部署

  项目内置了 docker-compose.yml,可以直接启动:

  - MySQL
  - Backend
  - Frontend
  - ONLYOFFICE

  启动命令:

  docker-compose up -d --build

  访问地址:

  - 前端:http://localhost
  - 后端:http://localhost:3000/api
  - ONLYOFFICE:http://localhost:8080

  ———

  ## 九、这个项目适合哪些场景

  我觉得这个项目比较适合以下类型的业务:

  - 医疗统计类系统
  - Excel 模板驱动的内部管理系统
  - 表格录入型业务平台
  - 需要在线编辑 Excel 并回写数据库的系统
  - 有多角色、多模块权限控制要求的业务系统

  ———

  ## 十、我在这个项目里重点解决了什么问题

  如果只从“做了哪些页面”来讲,这个项目并不算特别复杂。
  但如果从“解决了哪些真实业务问题”来看,我觉得它有几个比较实用的点:

  ### 1. 让 Excel 不只是上传附件

  而是:

  - 能生成模块
  - 能分析数据
  - 能图表展示
  - 能在线编辑
  - 能权限控制

  ### 2. 让模块扩展不再完全依赖传统开发模式

  如果业务本质是模板驱动的,那么通过模板分析自动生成模块,会极大提升扩展效率。

  ### 3. 让权限真正落到模块层和动作层

  而不是只做到“有没有登录”。

  ### 4. 验证了 AI 在真实项目开发中的可行性

  这次项目让我更加确定一件事:

  AI 已经可以参与完整的软件开发流程。

  它并不是代替人,而是让开发从“逐行编码”逐渐转向“需求定义 + 结果校验 + 持续迭代”的工作方式。

  ———

  ## 十一、项目地址

  Gitee 地址:

  https://gitee.com/zzYk/gfread-excel.git (https://gitee.com/zzYk/gfread-excel.git)

  如果你对下面这些方向感兴趣,也可以一起交流:

  - Excel 模板驱动业务系统
  - ONLYOFFICE 在线编辑集成
  - Vue + Express 后台系统
  - RBAC 权限设计
  - AI 辅助项目开发

  ———

  ## 十二、总结

  这个项目本质上是在做一件事:

  把 Excel 业务流程系统化。

  从模板生成模块,到数据分析,到图表可视化,再到在线编辑和权限管理,目标都是让原本分散在
  Excel、本地文件、人工协作里的流程,回到一个统一的平台里完成。

  而对我来说,这个项目还有另一层意义:

  它证明了 AI 已经可以真正参与一个完整项目的落地过程。

  不是写几个 demo,不是补几个函数,而是可以围绕真实需求,持续推进到一个能运行、能部署、能展
  示、能发布的系统。

  如果你也在做这类系统,这个项目可以作为一个比较完整的参考实现。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐