SmartTable:一个「飞书多维表格」平替,前后端全栈开源!

7 阅读13分钟

项目地址:GitHub | Gitee ⭐ 如果本文对你有帮助,欢迎点赞、收藏、转发支持一下!


写在前面:一个「不太安分」的想法

不知道你有没有这样的经历:

  • 用飞书多维表格管理客户信息,但总觉得把敏感数据放云端不太踏实
  • 正处理着重要数据,突然网络断开,一切操作都卡住了
  • 想要某个特殊功能,但 SaaS 产品就是不提供,还无法自定义
  • 想私有化部署,但市面上的工具要么太贵,要么太复杂

这些痛点,我深有体会。

于是,一个大胆的想法诞生了:能不能打造一个既支持纯前端离线使用,又能私有化部署的多维表格系统?

更疯狂的是,我决定全程用 AI 辅助编码来完成这个项目——从前端 Vue 3 到后端 Flask,90% 的代码都是 AI 生成的。

经过几个周的打磨,SmartTable 诞生了。今天,就和大家好好聊聊这个项目。


一、SmartTable 是什么?

用一句话概括:SmartTable 是一个支持双模式运行的智能多维表格系统——既可以在浏览器本地离线使用,也可以部署后端服务实现数据云端同步。

它长得像飞书多维表格,但骨子里完全不同:

特性SmartTable飞书多维表格Airtable
部署方式纯前端 / 后端双模式云端 SaaS云端 SaaS
数据存储IndexedDB / PostgreSQL 可选云端服务器云端服务器
离线使用✅ 完全支持❌ 不支持❌ 不支持
数据隐私可完全私有化数据在云端数据在云端
二次开发开源免费,可自由定制受限受限
费用完全免费免费版有限制免费版有限制

核心亮点速览

  • 🚀 双模式架构:纯前端离线使用 / 后端云端同步,按需选择
  • 🔒 灵活部署:浏览器本地 / 私有服务器 / 云端部署
  • 🎨 22 种字段类型:从基础文本到复杂公式,应有尽有
  • 👁️ 6 种视图模式:表格、看板、日历、甘特图、表单、画廊
  • 🧮 完整公式引擎:43 个内置函数,支持数学、文本、日期、逻辑计算
  • 📊 数据可视化:内置 ECharts 图表,支持仪表盘
  • 📤 导入导出:Excel、CSV、JSON 格式全支持
  • 🤖 AI 生成:90% 代码由 AI 辅助完成
  • 🔐 权限管理:支持用户认证、角色权限、数据分享

二、功能详解:不只是表格,更是数据管理平台

1️⃣ 丰富的字段类型系统

支持 22 种字段类型,覆盖你能想到的所有数据场景:

基础字段(6 种)

  • 文本(单行/多行)
  • 数字(支持格式化、千分位)
  • 日期(日期时间选择器)
  • 单选(自定义选项颜色)
  • 多选(标签式展示)
  • 复选框(快速勾选)

联系类型(4 种)

  • 成员(用户信息关联)
  • 电话(格式自动校验)
  • 邮箱(格式自动校验)
  • 链接(点击直接跳转)

媒体类型(1 种)

  • 附件(图片、文档、视频等,使用 IndexedDB Blob 存储)

计算类型(3 种)

  • 公式:支持 43 个函数,可引用其他字段计算
  • 关联:跨表关联数据,实现数据联动
  • 查找引用:引用关联表的字段值,支持聚合计算

系统字段(5 种)

  • 创建人、创建时间、更新人、更新时间、自动编号

其他(3 种)

  • 评分(星级可视化)
  • 进度(百分比进度条)
  • URL(点击跳转)

2️⃣ 6 种视图:一数据,多视角

同一份数据,6 种完全不同的展示方式:

视图适用场景核心功能
表格视图数据录入、批量编辑虚拟滚动、单元格编辑、列冻结、分组展示
看板视图项目管理、任务跟踪卡片式展示、拖拽排序、跨列移动
日历视图日程管理、排期规划月/周/日切换、日程提醒
甘特图视图项目规划、进度跟踪时间轴展示、依赖关系、进度可视化
表单视图信息收集、问卷调查表单配置、分享链接、数据自动收集
画廊视图素材管理、产品展示图片卡片、瀑布流布局

3️⃣ 强大的公式引擎

内置完整的公式计算系统,43 个函数覆盖 5 大类:

数学函数(11 个)

SUM({单价}, {数量})           // 求和
AVG({成绩 1}, {成绩 2})       // 平均值
ROUND({价格}, 2)              // 四舍五入保留 2 位小数
CEILING({数值})               // 向上取整
POWER({底数}, {指数})         // 计算幂

文本函数(10 个)

CONCAT({姓}, {名})            // 字符串拼接
LEFT({标题}, 10)              // 截取左侧 10 个字符
SUBSTITUTE({文本}, "旧", "新") // 替换文本
FIND("关键词", {文本})        // 查找关键词位置

日期函数(10 个)

TODAY()                       // 返回今天日期
DATEDIF({开始日期}, {结束日期}, "D")  // 计算日期差(天)
DATEADD({日期}, 7, "day")     // 日期加 7 天
YEAR({日期})                  // 提取年份

逻辑函数(7 个)

IF({成绩} >= 60, "及格", "不及格")  // 条件判断
AND({条件 1}, {条件 2})            // 逻辑与
OR({条件 1}, {条件 2})             // 逻辑或
SWITCH({状态}, "A", "优秀", "B", "良好") // 多值匹配

统计函数(5 个)

COUNT({字段 1}, {字段 2})       // 计数
COUNTIF({范围}, ">60")         // 条件计数
SUMIF({条件范围}, ">60", {求和范围}) // 条件求和

4️⃣ 数据筛选、排序、分组

多条件筛选

  • 支持文本、数字、日期、选择等多种条件组合
  • AND/OR 逻辑自由组合
  • 多种操作符:等于、不等于、包含、大于、小于…

多字段排序

  • 支持按多个字段依次排序
  • 升序/降序自由切换
  • 拖拽调整排序优先级

多级分组

  • 按字段值自动分组(最多 3 级)
  • 分组折叠/展开
  • 分组统计(计数、求和、平均值)

5️⃣ 数据导入导出

  • 导入:Excel (.xlsx/.xls)、CSV、JSON

  • 支持多 Sheet 导入

  • 自动识别字段类型

  • 批量导入数据

  • 导出:Excel、CSV、JSON

  • 自定义导出字段

  • 完整格式保留

  • 一键导出备份

6️⃣ 仪表盘系统

内置数据可视化仪表盘,支持多种图表组件:

  • 数字卡片(KPI 指标展示)
  • 时钟/日期组件
  • 实时图表(柱状图、折线图、饼图)
  • 跑马灯通知
  • 自定义布局

7️⃣ 用户认证与权限

后端模式支持:

  • 用户注册/登录
  • JWT Token 认证
  • 角色权限管理(管理员/编辑者/查看者)
  • Base 级别成员管理
  • 数据分享与权限控制

三、技术架构:前后端分离的现代化设计

双模式架构

SmartTable 支持两种运行模式,满足不同场景需求:

┌─────────────────────────────────────────────────────────────┐
│                    模式一:纯前端离线模式                     │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  Vue 3      │  │  Pinia      │  │  Dexie.js   │         │
│  │  前端框架   │  │  状态管理   │  │  IndexedDB  │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│                                                              │
│  特点:无需后端,数据存储在浏览器本地,完全离线使用           │
│  场景:个人数据管理、离线环境、快速原型                      │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                    模式二:前后端全栈模式                     │
├─────────────────────────────────────────────────────────────┤
│  前端层                                                       │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  Vue 3      │  │  Axios      │  │  Pinia      │         │
│  │  前端框架   │  │  HTTP 客户端 │  │  状态管理   │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│                            │ HTTP/HTTPS                     │
│                            ▼                                │
│  后端层(Flask)                                              │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  Flask      │  │ SQLAlchemy │  │  JWT        │         │
│  │  Web 框架   │  │  ORM       │  │  认证       │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│                            │                                │
│          ┌─────────────────┼─────────────────┐             │
│          ▼                 ▼                 ▼             │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │ PostgreSQL   │  │   Redis     │  │   MinIO     │         │
│  │  数据库      │  │   缓存      │  │  文件存储   │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│                                                              │
│  特点:数据云端同步、多用户协作、权限管理                    │
│  场景:团队协作、企业私有化部署、数据备份                    │
└─────────────────────────────────────────────────────────────┘

前端技术栈

前端框架    Vue 3.5+ (Composition API)
开发语言    TypeScript 5.x
构建工具    Vite 8.x
状态管理    Pinia 2.x
UI 组件库   Element Plus 2.x
表格组件    Vxe-Table 4.x
图表库      ECharts 5.x
本地存储    Dexie.js (IndexedDB 封装)
拖拽排序    SortableJS
日期处理    Day.js
HTTP 客户端  Axios

后端技术栈

Web 框架      Flask 3.0
ORM          SQLAlchemy 2.0
数据库        PostgreSQL 16 / SQLite
认证         Flask-JWT-Extended
数据验证     Marshmallow
数据库迁移   Alembic
文件存储     MinIO
缓存         Redis
WSGI 服务器   Gunicorn
容器化       Docker + Docker Compose

为什么选择双模式架构?

  1. 灵活性强:用户可根据需求选择部署方式
  2. 迁移平滑:从纯前端模式可无缝迁移到后端模式
  3. 成本低:个人使用无需服务器,团队协作可私有部署
  4. 数据安全:敏感数据可本地存储,也可云端备份
  5. 易于扩展:前后端分离,便于功能迭代

四、AI 编码实践:如何用 AI 完成一个全栈项目

这个项目最大的特色是——90% 的代码都是 AI 辅助生成的,包括前端和后端。

🤖 AI 辅助开发全流程

  1. 架构设计阶段
  • 用 AI 分析飞书多维表格的功能,输出产品规划文档
  • 通过多轮对话细化数据模型设计
  • 让 AI 生成技术架构文档和 API 设计
  • AI 辅助进行技术选型(Flask vs NestJS、PostgreSQL vs SQLite)
  1. 代码生成阶段
  • 按模块拆分任务(字段系统、视图系统、公式引擎、后端 API…)
  • 逐个模块让 AI 生成代码框架
  • 要求 AI 同步编写单元测试,确保代码质量
  • AI 辅助进行前后端接口对接
  1. 调试优化阶段
  • 将报错信息直接喂给 AI,快速定位问题
  • 让 AI 分析性能瓶颈,给出优化建议
  • 通过 AI 进行代码重构和规范化

💡 AI 编码 vs 传统开发

方面传统开发AI 辅助开发
架构设计数天数小时
代码编写数周数天
单元测试常被忽略自动生成,覆盖率 90%+
文档编写后期补写同步生成
问题排查逐个搜索直接给出解决方案
全栈开发需要多角色协作一人 +AI 即可完成

📝 我的 AI 提示词工程经验

  1. 分而治之:将大任务拆分成小模块,逐个击破
  • ❌ “帮我写一个多维表格系统”

  • ✅ “帮我实现一个字段配置面板,支持文本、数字、日期等字段的配置项”

  1. 上下文充足:提供清晰的架构文档和技术规范
  • 先让 AI 理解整体架构

  • 再让它实现具体功能

  1. 迭代优化:先生成框架,再逐步细化
  • 第一版:生成基础功能

  • 第二版:添加错误处理

  • 第三版:优化性能和用户体验

  1. 测试驱动:要求 AI 同步编写测试用例
  • “请为这个函数编写单元测试,覆盖所有边界情况”

五、实际应用场景:SmartTable 能做什么?

场景 1:个人数据管理(纯前端模式)

客户信息管理

  • 用表格视图录入客户基本信息
  • 用看板视图跟踪销售阶段
  • 用日历视图安排跟进计划
  • 数据存储在本地,无需担心隐私泄露

读书笔记管理

  • 记录书名、作者、阅读进度
  • 用评分字段打分
  • 用多选字段标记书籍类别
  • 离线使用,随时随地记录

家庭记账本

  • 记录收支明细
  • 用公式字段自动计算结余
  • 用仪表盘展示收支趋势
  • 数据完全私有

场景 2:小团队协作(后端模式)

项目管理

  • 用甘特图规划项目进度
  • 用看板视图跟踪任务状态
  • 用成员字段分配责任人
  • 多用户实时协作,数据云端同步

内容排期

  • 用日历视图规划内容发布
  • 用单选字段标记内容状态
  • 用表单视图收集选题建议
  • 团队成员共享数据

库存管理

  • 记录商品信息、库存数量
  • 用公式字段计算库存价值
  • 设置阈值自动提醒补货
  • 支持多仓库管理

场景 3:企业私有化部署(后端模式)

敏感数据管理

  • 财务数据、客户信息存在本地服务器
  • 无需担心数据泄露到云端
  • 可基于源码二次开发,定制功能
  • 完整的权限控制和操作审计

离线场景

  • 工厂车间、仓库等网络不稳定环境
  • 支持离线编辑,网络恢复后同步
  • 数据双重备份(本地 + 服务器)

行业解决方案

  • CRM 客户管理
  • ERP 企业资源计划
  • MES 制造执行系统
  • OA 办公自动化

六、快速开始:5 分钟上手 SmartTable

环境要求

  • Node.js >= 18
  • npm >= 9
  • Python >= 3.9(后端模式)
  • 现代浏览器(Chrome/Firefox/Safari/Edge)

方式一:纯前端模式(推荐新手)

# 1. 克隆项目
git clone https://github.com/ldbinac/smart_table.git
cd smart_table/smart-table

# 2. 安装依赖
npm install

# 3. 启动开发服务器
npm run dev

# 4. 访问浏览器
# http://localhost:5173

方式二:前后端全栈模式

前端配置:

cd smart_table/smart-table

# 安装依赖
npm install

# 配置后端 API 地址
cp .env.example .env
# 编辑 .env 文件,设置 VITE_API_BASE_URL

# 启动开发服务器
npm run dev

后端配置:

cd smart_table/smarttable-backend

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 安装依赖
pip install -r requirements.txt

# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置数据库连接

# 初始化数据库
flask db upgrade

# 启动开发服务器
flask run --reload

浏览器支持

  • Chrome >= 90
  • Firefox >= 88
  • Safari >= 14
  • Edge >= 90

七、功能预览

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)


八、未来规划

SmartTable 还在快速迭代中,以下是已经排期的功能:

近期(v1.1-v1.2)

  • 字段默认值配置
  • 附件字段预览功能(图片、文档、视频)
  • 操作历史记录
  • 数据仪表盘增强

中期(v1.3-v2.0)

  • 实时协作(基于 WebSocket)
  • 字段级权限控制
  • 移动端适配优化
  • 自动化工作流

长期(v2.0+)

  • AI 辅助搭建表单
  • 数据问答与可视化
  • 插件系统
  • REST API 开放接口
  • MCP 接口支持

九、结语:开源的意义

SmartTable 从想法到落地,离不开开源社区的支持。

对于用户:我希望提供一个灵活部署、数据隐私有保障的多维表格工具,让你能更好地管理数据。

对于开发者:我希望能展示 AI 辅助开发的无限可能,让更多人看到:AI 不是取代开发者,而是放大我们的能力。

对于贡献者:我希望能吸引更多志同道合的伙伴,一起完善这个项目,让它变得更好。


🌟 支持项目

如果你也喜欢这个项目,欢迎:

⭐ GitHub 点个 Star:github.com/ldbinac/sma…

⭐ Gitee 点个 Star:gitee.com/binac/smart…

🐛 提交 Issue:发现问题或有新功能建议

🔧 提交 PR:一起完善这个项目

💬 技术交流:在评论区分享你的想法

📢 分享给朋友:让更多人看到这个好项目


写在最后: AI 不会取代开发者,但会用 AI 的开发者会取代不会用 AI 的开发者。 希望这个项目能给你带来一些启发!


本文同步发布于知乎和同名微信公众号,转载请注明出处。

作者:SmartTable 开发团队 发布日期:2026 年 4 月