开源多维表格SmartTable 来啦!我的数据我做主!

开源多维表格SmartTable v1.4.0 来啦!这次带来了文档功能

发布日期:2026-05-25


写在前面

距离上个版本发布才过去一周多,开源类“飞书多维表格”系统SmartTable 又迎来了 v1.4.0。

这次更新的核心就一个字——

之前 SmartTable 能帮你管数据、做表单、建仪表盘,但一直缺一个正经的"写文档"的地方。很多用户反馈说,数据表里记录的是结构化数据,但项目里总有些需要长篇大论说明的东西,比如需求文档、会议纪要、项目方案……这些内容放表格里不合适,不放又没地方放。

所以,v1.4.0 我们把文档管理模块给安排上了。

下面一个一个来说。


一、文档管理:边管数据边写文档

文档跟 Base 走,权限不用重复配

新增加的文档功能是挂在 Base(多维表)下面的。什么意思呢?就是你建了一个项目 Base,里面既可以有数据表、仪表盘,现在还可以有文档了。

而且权限是通的——你对这个 Base 有什么权限,对里面的文档就有什么权限。不用给文档单独再设一遍谁能看谁不能看,省事。

编辑器:该有的都有,够用

编辑器用的是华为团队开源的基于Quill的富文本编辑器TinyEditor,一个业界用得挺多的富文本引擎(感谢TinyEditor团队的贡献)。功能上覆盖了日常写文档的基本需求:

  • 文字排版:加粗、斜体、标题、列表这些基础操作肯定有
  • 插入表格:写方案、排计划的时候表格是刚需,现在文档里也能插了
  • 插入图片:在文档当中插入图片
  • Markdown 支持:如果你习惯用 Markdown 写东西,也可以直接在编辑器里写,实时渲染
  • 文档标题实时预览:支持在文档的时候,实时预览文档的标题大纲,并可以快速点击导航定位,方便阅读文档指定章节信息
  • 键盘快捷键:写文档的时候手不离键盘是最舒服的,Ctrl+S 顺手保存,不用去点按钮

版本历史:手滑了也不要慌

写文档最怕什么?怕改了半天发现还不如上一版好,但又找不回来了。

文档模块带了版本历史功能。每次保存都会生成一个版本记录,你可以随时回溯到任意历史版本。而且版本列表里会显示是谁保存的,方便团队协作的时候知道每个版本的来龙去脉。

PDF 导出:写完直接出文件

文档写好了,有时候需要发给别人看或者打印出来。现在直接点一下就能导出成 PDF 文件,排版样式基本能保持跟编辑器里看到的一致。


二、Docker 部署大简化:一个容器全搞定

老用户应该知道,之前用 Docker 部署 SmartTable 需要启动两个容器——一个跑应用,一个跑 Redis。虽然也不算多复杂,但对于只是想快速体验一下的人来说,还是有点门槛。

这次我们把 Redis 直接内嵌到了应用容器里,现在只需要一个容器就能跑起来了。

docker run -d \
  --name smarttable \
  -p 80:80 \
  -v smarttable_data:/app/data \
  -v smarttable_uploads:/app/uploads \
  -v smarttable_redis:/data/redis \
  ygbinac/smarttable:latest

一行命令,搞定。

对于想快速搭起来试试看的朋友,这个改动应该能省不少事。

  • 或者使用 docker compose ,只需创建以下 docker-compose.yml ::
services:
  smarttable:
    image: ygbinac/smarttable:latest
    container_name: smarttable
    ports:
      - "80:80"
    volumes:
      - smarttable_data:/app/data
      - smarttable_uploads:/app/uploads
      - smarttable_redis:/data/redis
    restart: unless-stopped

volumes:
  smarttable_data:
  smarttable_uploads:
  smarttable_redis:

三、一些不那么显眼但很有用的改进

除了上面两个大块,这次还顺手修了一些东西:

  • 时区处理优化:修了几个时区不一致导致的 bug,特别是文档版本创建时间的显示问题。另外,为了方便用户在不同时区直接使用,我们实现了前端页面根据用户时区自动调整时间显示的功能。
  • API 文档补齐了:文档模块的所有接口都加上了 Swagger 注释,现在在 /apidocs 页面能看到完整的接口说明,前后端联调的时候方便不少。
  • 修了几个小 bug:列表选中状态异常、乐观锁校验逻辑错误、PDF 导出图片 URL 路径不对……该修的都修了。


四、SmartTable 是个什么项目?

看到这里,可能有些朋友是第一次听说 SmartTable,这里简单介绍一下。

SmartTable 是一个开源的多维表格管理系统,说白了就是一个可以自己搭的"类 Airtable、飞书多维表格"系统。它把数据表格、表单收集、仪表盘分析、文档管理这些功能整合到了一起,适合用来做:

  • 项目管理
  • 数据收集和汇总
  • 团队协作
  • 企业级应用
    • 轻量级 CRM
    • 轻量级 MES
    • 轻量级 WMS
    • 轻量级 ERP
  • 个人知识管理




核心特性一览

数据管理

  • 26+ 种字段类型:文本、数字、日期、单选、多选、附件、关联、自动编号、评分等
  • 6+ 种视图:表格、看板、日历、甘特图、画廊、表单
  • Excel 智能导入创建表
  • 数据导入导出

表单与分享

  • 公开表单分享(匿名提交、验证码保护)
  • 数据收集与统计分析

仪表盘

  • 可视化图表展示
  • 多种行业模板
  • 实时数据组件

文档管理(v1.4.0 新增)

  • 富文本编辑、Markdown 支持
  • PDF 导出、版本历史
  • 与 Base 权限打通

协作与安全

  • 实时多人在线协作
  • JWT 认证、API 限流
  • XSS/SQL 注入防护
  • 敏感信息日志脱敏

部署

  • 支持 Docker 单容器部署
  • 小白用户友好的一键运行包(支持Windows/Linux/macOS 等环境下一键运行,无需安装依赖)

技术栈

层面 技术
后端 Python 3.11+、Flask 3.0、SQLAlchemy 2.0、PostgreSQL、Redis
前端 Vue 3、TypeScript、Element Plus、Pinia、Vue Router
部署 Docker、PyInstaller、Nuitka

五、关注作者

SmartTable 是一个个人开源项目,作者是程序员吕洞宾。项目完全开源,代码都在 GitHub 和 Gitee 上,欢迎 star、fork、提 issue,一起参与建设。

如果你觉得这个项目对你有帮助,或者想了解更多关于 SmartTable 的开发故事、技术分享,可以关注作者在这些平台上的账号:

平台 账号 / 地址
:globe_with_meridians: GitHub(主仓库) https://github.com/ldbinac/smart_table
:china: Gitee(国内镜像) https://gitee.com/binac/smart_table
:laptop: CSDN 程序员吕洞宾
:pick: 稀土掘金 程序员吕洞宾
:memo: 知乎 程序员吕洞宾
:postbox: 微信公众号 程序员吕洞宾

关注不迷路,持续更新中~


SmartTable v1.4.0,让数据管理和文档编写合二为一。

5 个赞

多维表格嘛?收藏一下

1 个赞

v1.5.1版本来啦,欢迎大家关注GitHub下载试用或者直接试用docker官方包

2 个赞

v1.5 是 SmartTable 发布以来改动最大的一次,主要干了这么几件事:

  • 换了表格渲染引擎 —— 从旧的表格组件换成了 VTable,整个表格的交互体验完全不一样了
  • 所有字段的编辑器全部翻新 —— 单选、多选、日期、成员……每一个都重做了
  • 性能和缓存深度优化 —— 大表格也能流畅跑,之前打开千条以上的数据都很卡,现在可以顺滑支持万条以上数据了
  • 附件管理完善 —— 上传、预览、编辑一条龙
  • 还有很多其他……

欢迎试用:

关注作者

如果你觉得 SmartTable 对你有帮助,欢迎关注作者,第一时间获取项目更新动态和技术干货:

平台 账号 / 链接
:globe_with_meridians: GitHub github.com/ldbinac/smart_table
:china: Gitee gitee.com/binac/smart_table
:speech_balloon: 微信公众号 程序员吕洞宾
:memo: CSDN 程序员吕洞宾
:blue_book: 稀土掘金 程序员吕洞宾
:brain: 知乎 程序员吕洞宾

:backhand_index_pointing_right: 老铁们,GitHub 点个 Star 就是最大的支持!

2 个赞

这个有点无敌了,收藏一下

2 个赞

nb!!你这把飞书多维表格那套相当于开源出来了,爽

2 个赞

SmartTable v1.5.2 Release Notes

发布日期 / Release Date: 2026-07-04

版本号 / Version: v1.5.2

标签 / Tags: release, v1.5.2, latest, stable


中文版本 / Chinese Version

:tada: SmartTable v1.5.2 更新说明

本次更新聚焦于 表格交互能力增强稳定性修复:新增 表格内容全局搜索相邻相同内容单元格自动合并行冻结/取消冻结 等实用能力;同时优化了排序、序号列、右键菜单等细节体验,并修复了复制记录不刷新、字段值重复合并等若干问题。

:sparkles: 新增功能 (New Features)

  • :magnifying_glass_tilted_left: 表格内容全局搜索:新增表格内全局搜索能力,方便快速定位记录
  • :puzzle_piece: 单元格自动合并:支持开启相邻相同内容单元格自动合并展示
  • :snowflake: 行冻结/取消冻结:表格视图右键菜单新增行冻结与取消冻结操作
  • :key: 主键字段默认描述:为主键(索引)字段添加默认描述,并限制隐藏操作

:wrench: 优化改进 (Improvements)

  • 公式计算:公式引擎支持字面量值直接返回,修复文本函数不生效问题
  • 列排序逻辑:优化表格列排序逻辑,正确支持数值型字段排序
  • 右键菜单 & 表头排序:优化右键菜单与表头点击排序交互
  • 数据更新逻辑:重构 records 监听器,统一表格数据更新机制
  • 序号列:优化序号列,新增行不显示序号且不可勾选
  • 验证码字体优化:优化docker环境下验证码字体加载与显示效果,新增字体依赖

:bug: Bug 修复 (Bug Fixes)

  • 修复复制记录后不会自动刷新的问题
  • 修复新增按钮行字段值重复导致合并的问题
  • 修复编辑器空值返回不一致导致无法置空单选字段的问题
  • 修复 Docker 容器内文件 CRLF 换行符问题并设置权限
3 个赞

SmartTable v1.6.0 更新说明

本次更新是 SmartTable 历史上又一次重大版本升级,正式引入 完整的工作流自动化引擎Webhook 投递管理系统。工作流引擎支持多种触发器(定时/记录创建/记录更新)、条件分支、创建记录等节点类型,并配套版本快照、关联数据表、节点编辑等完整管理能力。

:sparkles: 新增功能 (New Features)

:counterclockwise_arrows_button: 工作流自动化引擎 (Workflow Engine) :star::star::star:

核心引擎与架构

  • 实现完整的工作流与 Webhook 功能模块(端到端架构落地)
  • 实现工作流与数据表的绑定关系
  • 支持工作流的创建、编辑、删除、暂停、继续、版本快照等操作
  • 自动构建工作流节点执行链与节点执行顺序
  • 实现工作流版本快照
  • 支持查看全局数据表与工作流的绑定关系
  • 统一工作流节点类型规范化处理

触发器系统 (Trigger System)

  • :star: 新增指定时间定时触发工作流能力
    • 指定时间触发器使用本地时区解释触发时间
    • 支持不重复一次触发与多种类型(每日/每周/每月/每年/自定义)重复触发机制
    • 支持指定时间触发器的截止日期配置,避免重复触发
  • :star: 支持记录创建触发器
    • 触发过滤条件,支持全局触发(不配置过滤条件)
    • 触发过滤条件,支持与(全部满足)与或(任意满足)的指定多条件触发模式
  • :star: 支持记录更新触发器
    • 支持全局触发(不配置监听字段)
    • 支持监听指定字段更新触发(配置监听字段)
    • 触发过滤条件,支持全局触发(不配置过滤条件)
    • 触发过滤条件,支持与(全部满足)与或(任意满足)的指定多条件触发模式

节点系统 (Node System)

  • :star: 支持多种节点类型(创建记录、更新记录、webhook、条件分支)的创建、编辑、删除等操作
  • :star: 创建记录节点 (Create Record Node)
    • 支持对目标表记录的创建
    • 支持目标表字段值输入的映射配置,支持录入静态值或基于源表字段值的引用表达式
  • :star: 更新记录节点 (Update Record Node)
    • 支持源表字段值输入的配置,支持录入静态值或使用表达式
  • :star: Webhook 节点 (Webhook Node)
    • 支持选择系统已配置的Webhook
    • 支持内联配置新的 Webhook
  • :star: 条件节点 (Condition Node)
    • 过滤条件,支持与(全部满足)与或(任意满足)的指定多条件触发模式
    • 支持实时显示配置的条件摘要信息
  • :star: 支持手工调整节点执行顺序(拖拽排序)

列表与界面 (List & UI)

  • :star: 工作流列表面板新增折叠/展开功能(侧边栏宽度自适应)
  • :star: 新增搜索框,支持按名称或描述过滤工作流

版本管理 (Version Management)

  • :star: 版本历史功能,支持查看工作流历史版本
  • 版本历史弹窗支持查看版本号、创建时间、创建者名称、节点配置摘要信息等

顶部导航

  • :star: 多维表Base页面新增顶部导航自动化菜单,统一工作流配置入口

:hook: Webhook 投递管理 (Webhook Delivery) 系统:star:

  • :star: Webhook 配置功能,支持新增、编辑 Webhook 配置
    • 支持 Webhook 名称、URL、HTTP 方法、请求头、请求体模板等配置
    • 支持 Webhook 重试策略(最大重试次数、重试间隔等)配置
    • 支持 Webhook 启用状态(开启/禁用)配置
  • :star: 支持测试Webhook 配置功能,支持测试 Webhook 配置是否有效
  • :star: Webhook 投递记录功能
    • 支持查看 Webhook 投递记录列表
    • 支持查看 Webhook 投递记录详情(包含请求参数、响应状态码、响应体等)
    • 支持刷新 Webhook 投递记录
2 个赞

:tada: SmartTable v1.6.2 更新说明

本次更新聚焦数据关联与协作共享能力,实现了查找字段功能,进一步完善了公式字段的多类型计算与格式化能力,完善了仪表盘分享功能,同时在工作流引擎中扩展了发送邮件节点、记录时间触发器和查找记录节点。

:sparkles: 新增及功能优化

:counterclockwise_arrows_button: 工作流引擎增强

  • 发送邮件节点 - 新增发送邮件节点支持,工作流可直接触发邮件通知
  • 记录时间触发器 - 新增「到达记录中的时间时」触发器类型,支持基于记录时间字段的定时触发
  • 查找记录节点 - 添加查找记录工作流节点功能,支持在工作流中查询关联数据
  • 节点类型管理重构 - 重构节点类型管理,为后续扩展更多节点类型奠定基础

:magnifying_glass_tilted_left: 查找字段全量实现 :star:

  • :star: 全量实现查找字段(Lookup Field) - 支持从关联记录中查找并引用目标字段值,实现跨表数据联动
  • 记录展示适配 - 记录抽屉和详情页完整支持查找字段显示,数据查看更连贯
  • 格式化逻辑优化 - 修复默认值显示和查找字段格式化逻辑,确保引用数据正确渲染

:abacus: 公式字段功能完善

  • 公式助手组件 - 新增公式助手组件并集成到字段配置对话框,降低公式编写门槛
  • 多类型格式化 - 完善公式字段功能,支持更多字段类型的计算结果格式化
  • 日期处理能力 - 新增日期处理相关功能并优化显示效果

:bar_chart: 仪表盘分享功能

  • 完整分享流程 - 实现仪表盘分享功能完整流程,支持将仪表盘以链接形式分享给他人
  • 分享信息配置 - 新增仪表盘分享标题和备注功能,便于接收方理解分享内容
  • 安全策略优化 - 仅在创建分享时返回一次访问密码,避免密码在后续接口中重复暴露

:bug: Bug 修复

问题描述 修复内容
认证与侧边栏显示 修复认证 store 和侧边栏显示逻辑
查找字段格式化 修复默认值显示和查找字段格式化逻辑
仪表盘分享模型 导入缺失的 DashboardShare 模型
日期函数显示格式 修复日期函数显示格式逻辑
2 个赞

:tada: SmartTable v1.6.3 更新说明

本次更新聚焦 工作流引擎能力扩展公式与字段能力完善前端构建体系升级 以及 稳定性修复。新增工作流循环节点、循环体 Webhook、问题反馈入口、Token 自动续期体系;公式函数补充 ;前端构建全面迁移至 pnpm;并修复了看板拖拽、附件删除、字段编辑、表格交互等一批问题。

:sparkles: 新增及功能优化

:counterclockwise_arrows_button: 工作流引擎增强

  • 循环节点:新增循环节点类型及完整流程支持,可在流程内对集合逐项处理

  • 循环 Webhook:新增循环节点 Webhook 支持并修复循环数据源

  • Webhook 投递日志:新增工作流实例 Webhook 投递日志查看功能

  • Webhook 变量提示:重构变量提示系统,添加带详情的悬停提示

  • 内联 Webhook 拦截:支持内联 Webhook 的投递与重投递拦截

  • 画布连线优化:优化画布连线,增加方向箭头

  • 节点类型重构:重构工作流节点类型,使用细粒度枚举并兼容旧数据

  • 执行日志增强:执行日志节点 ID 改为字符串类型并新增节点名字段

:abacus: 公式与字段增强

  • 公式函数统一:统一前后端公式函数注册并补充缺失函数

  • 关联字段优化:优化关联字段功能,修复缓存与显示问题

  • 数字格式化:为数字类型字段添加格式化渲染能力

:hammer_and_wrench: 平台能力

  • Token 自动续期:实现完整的 Token 自动续期功能体系

  • 问题反馈:新增问题反馈相关功能

  • 文档体验:优化文档版本控制与编辑体验

  • 附件预览:附件图片缩略图支持单击直接预览完整图片

  • 会话超时上限:调整会话超时时间上限到 10080 分钟(不建议调整太大,存在安全隐患)

:package: 工程与构建

  • pnpm 迁移:前端构建体系全面迁移至 pnpm(Docker、打包脚本、文档同步)

  • 数据库迁移:重构数据库初始化流程,改用 Alembic 迁移,实现版本自动升级

  • 反馈邮箱:更新反馈邮箱地址

:bug: Bug 修复 (Bug Fixes)

  • 修复看板拖拽时未使用目标分组 ID 的问题

  • 修复看板视图拖拽卡片后未同步更新分组字段

  • 修复编辑器回调异常导致新增一次增加 2 行的问题

  • 修复表格视图交互问题及字段类型转换与默认值

  • 修复字段编辑面板确认后字段管理面板异常

  • 修复附件字段删除弹窗遮挡及删除失效问题

  • 修复点击附件缩略图时触发单元格选择的问题

  • 修复流程节点空结果处理和空节点校验逻辑

  • 修复时区获取逻辑,支持读取浏览器本地时区

  • 修复内联 Webhook 的投递与重投递拦截问题

1 个赞

:tada: SmartTable v1.6.4 更新说明

本次更新聚焦 主从表与树形层级能力站内信通知体系工作流自定义脚本节点协同编辑与并发控制 以及 权限体系收敛。新增主从表(子表)完整支持、表格视图树形层级记录、站内信通知系统、工作流自定义脚本节点;实现单元格协同锁与冲突检测、文档乐观锁;字段与管理类操作权限统一收敛至管理员及以上角色;并修复了下拉编辑器、视图校验、分享接口、表格滚动定位等一批问题。

:sparkles: 新增及功能优化

:link: 主从表与树形层级 :star:

  • :star: 主从表功能:新增主从表(子表)完整支持,包含子表工具栏、多关联字段切换、添加关联与刷新能力
  • 主从表数据服务:新增 masterDetailServiceuseMasterDetail 组合式函数,封装数据获取、列构建、缓存与懒加载逻辑
  • 抽屉内子表详情:新增 SubTableInDrawer 组件,在详情抽屉内渲染关联子表,并支持二级子表记录详情弹窗
  • 抽屉宽度优化:优化抽屉宽度计算逻辑,增加最小宽度兜底
  • :star: 树形层级记录:新增视图父字段配置,支持通过自关联字段构建记录树形层级
  • 树形记录接口:新增创建子记录接口与树形记录数据查询接口
  • 自关联优化:优化关联字段组件,自关联场景下自动排除当前记录

:open_mailbox_with_raised_flag: 站内信通知系统 :star:

  • :star: 站内信通知:完整实现站内信通知系统,包含通知服务、模型、API 路由与管理接口
  • 前端通知中心:新增通知组件、状态管理与通知页面
  • 通知优先策略:替换原有邮件通知逻辑,优先发送站内信并兼容邮件发送
  • 多场景覆盖:覆盖注册、密码修改、分享协作、审批等多场景通知推送
  • 数据库升级:新增通知表与数据迁移脚本,Dexie 前端数据库升级至版本 10

:counterclockwise_arrows_button: 工作流引擎增强

  • :star: 自定义脚本节点:新增工作流自定义脚本节点,支持 Python语言的自定义脚本
  • 脚本执行沙箱:后端新增脚本执行沙箱,通过子进程隔离执行,保障运行安全
  • 脚本配置面板:前端新增脚本节点配置面板,集成代码编辑器与测试运行能力
  • 引擎调度完善:完善工作流执行引擎对脚本节点的调度与上下文处理

:handshake: 协同编辑与并发控制

  • :star: 单元格协同锁:实现完整的单元格协同锁与冲突检测,支持锁超时、断线重试与状态管理
  • 乐观冲突检测:本地待提交变更支持乐观冲突检测,提供冲突对话框与用户裁决逻辑
  • 锁资源释放:组件卸载时自动释放所有持有的锁,避免锁泄漏
  • 文档乐观锁:文档更新新增 expected_updated_at 乐观锁校验,重命名与保存冲突返回 409 提示

:abacus: 公式与字段增强

  • 日期函数完善:重构后端日期解析逻辑,新增支持 YYYYMMDD 格式、毫秒时间戳字符串与常见日期格式
  • 嵌套函数支持:统一日期解析入口,完善多层嵌套函数场景(如身份证提取日期)
  • 公式错误提示:为公式引擎添加详细错误提示,包含函数名、参数与错误信息
  • 正则校验字段:为单行文本字段新增正则表达式校验配置,支持自定义规则与校验提示
  • 正则预设:内置国内电话、邮编、身份证、IPv4 等常用正则预设,支持快速填充
  • 实时校验:表单与详情弹窗支持失焦实时校验与错误提示样式

:artist_palette: 交互与体验优化

  • 右键菜单增强:菜单项新增 hint 悬浮提示,新增升级/降级/新增子级树形操作图标并优化布局
  • 表格定位保持:数据更新后自动滚动定位到最近更新的记录行,保持操作上下文连续
  • 增量更新优化:实时更新时行数不变优先走增量更新,减少全量重建
  • 剪贴板兼容:新增 copyToClipboard 工具,优先使用 Clipboard API,失败自动回退并展示完整 URL

:locked_with_key: 权限与安全

  • 权限收敛:字段类与管理类操作权限由 EDITOR 及以上统一提升至 ADMIN 及以上,避免普通用户误操作
  • 范围覆盖:工作流、数据表、文档、仪表盘等管理功能均仅管理员可操作
  • 分享限流优化:表单分享速率限制由客户端 IP 维度改为分享令牌维度,避免局域网多用户被误限,阈值调整为 100 次 / 15 分钟

:bug: Bug 修复 (Bug Fixes)

  • 修复下拉选择编辑器选中值匹配异常,单选/多选改为按 id 匹配并兼容旧的 name 匹配方式
  • 修复下拉选项显示文本错误,改用实际 name 作为展示内容
  • 修复视图路由中 table_id 类型不匹配导致的校验失败,表单视图现可设置为默认视图
  • 修复层级表格展开按钮不显示的问题(CachedDataSource 模式下初始化 records 为空)
  • 修复数据更新后表格跳回首行的问题
  • 统一前后端分享接口路由路径,合并分享的更新与删除接口并优化错误提示
  • 修复分享接口使用 filter_by 替代 query.get 以兼容 CompatUUID 类型
  • 修复后端返回秒级时间戳的前端适配问题
  • 修复表单提交错误提示取值顺序,优先读取 error 字段以兼容后端错误格式
  • 修复打包模式下 Flask 调试重载导致重复打开浏览器的问题
  • 修复日期/时间字段值在公式比较中的类型不一致问题
  • 修复单元格中调整单选与多选的值,存储的选项值与弹窗里的不一致问题
  • 修复表单分享链接部分场景下无法复制问题