Grist:能自托管的完整关系型电子表格,两条命令跑起来
【免费下载链接】grist-coreGrist is the evolution of spreadsheets.项目地址: https://gitcode.com/GitHub_Trending/gr/grist-core
你八成遇到过这种场面:客户表和订单表放在同一个工作簿里,只能一条一条 VLOOKUP;同事改了其中一个字段,另外三处公式跟着过期,还没人发现。Grist 是一个开源的关系型电子表格——把数据库的表结构和关系能力搬进表格,两条命令就能自托管跑起来。
它是什么:一份能自托管的关系型电子表格
Grist 官方把它定义为"表格的进化":列像数据库字段一样有名字、有类型、只装一种数据;公式则像 Excel,引用的单元格变化时结果自动更新。
它和 Excel、Google Sheets 的区别在于,一个 .grist 文件本质上就是一个 SQLite 数据库,任何能读 SQLite 的工具都能直接读到里面的数据,数据不会被锁在某家厂商的云里。从 Airtable 过来的人,会觉得这套模型很亲切。
核心能力拆解:从公式到仪表板
公式与数据类型——直接在单元格里写 Python
- 公式支持完整 Python 语法(含标准库),同时提供常用 Excel 函数库
- 内置 AI 公式助手,可对接任意 OpenAI 兼容端点
- 列类型明确:选择列表(彩色标签)、引用(跨表关联记录,双向引用让两张表自动同步)、附件、货币、开关
从表格到仪表板——拖拽三步搭出可视化页面
- 图表、卡片视图、日历小部件可以拖进同一页
- 摘要表(Summary Table)按组做汇总和计数
- 小部件联动(Widget Linking):点一个小部件,其他小部件跟着过滤,不用反复写筛选条件
- 网格支持条件格式(用公式控制单元格样式)和 Markdown 文本
行级权限与自动化——共享不漏数据,通知不写脚本
- 访问控制细化到行、列、表,还能用公式条件控制(基于单元格值或用户属性)
- 协作:单元格内评论(支持线程和 @ 提及),以及像代码评审一样的"建议更改"模式
- 出站 Webhook:行数据变化时按条件通知外部系统
- 完整版还有 Automations 面板:条件命中后发邮件并保留投递日志(社区版可用 Webhook 搭出类似效果)
公式是怎么算的?打开文档时,服务器会为它启动一个 Python 数据引擎,浏览器里的改动由它转换成动作、写回 SQLite,再推送给所有在线客户端:
跑起来:两条命令完成 Docker 部署
最快的路径是官方 Docker 镜像:拉取镜像、挂载本地目录保存数据,然后启动:
docker pull gristlabs/grist docker run -p 8484:8484 -v $PWD/persist:/persist -it gristlabs/grist浏览器打开 http://localhost:8484,会看到 Quick setup 向导:选一个管理员邮箱,在容器启动日志里找到 BOOT KEY 一行粘贴进去,点击 Apply and go live! 就能看到工作台。想跳过登录配置,可以加上 GRIST_IN_SERVICE=true 以单用户模式启动。如需从源码构建等深度定制,可参考 README 的 Building from source 章节与贡献指南。
它是怎么工作的:谁负责什么
Grist 的部署分成几个角色,各管一摊:
- Home Server:处理文档列表、访问检查、共享设置和 API 请求,不直接打开文档
- Doc Worker:文档被打开时,从存储取回 .grist 文件,并为它启动一个沙箱化 Python 解释器(隔离运行环境,用户公式影响不到宿主)
- 数据引擎:负责算公式、追踪依赖,某个单元格一变就自动重算下游
- HomeDB:存用户、组织、工作区、共享等实例信息;Redis记录哪份文档跑在哪个 Worker 上;S3 兼容存储保存文档的长期版本
你做的改动会变成一个 User Action,Python 引擎把它拆成 Doc Actions(含公式结果),Node 写入本地 SQLite,并同步推送给所有连接的浏览器——这就是多人同时编辑同一份文档不打架的原因。
能用来做什么:4 个拿来即用的场景
- 客户跟进:客户表 + 跟进表,用引用列(Reference)关联,新增一条跟进,客户行的"最后联系时间"自动更新
- 项目管理:日历小部件排任务截止日,卡片视图当状态看板,摘要表按负责人计数
- 预算管理:货币列记账,摘要表按月汇总,图表视图看趋势;每月新 CSV 增量导入,不产生重复行
- 内容排期:原生表单收集素材(支持附件),附件列存稿件,日历视图排发布日
官方模板库里有工资单、库存、发票、D&D 遭遇追踪等现成模板,装好即可导入使用。
深入阅读
- README.md:功能清单、部署方式与完整环境变量表
- documentation/overview.md:架构与服务端、客户端代码导览
- documentation/database.md:Home Database 与文档文件的内部结构
- CONTRIBUTING.md:如何参与代码贡献
有问题或想晒作品,可以去官方 Discord 服务器和社区论坛,是两个主要的交流阵地。
写在最后
Grist 适合想自托管数据、Excel 关联表不够用的团队:需要行级权限的多人协作,或者想基于 REST API 和 Webhook 做二次开发的开发者。如果不想维护任何服务器,或者工作流深度绑定 VBA 和 Excel 插件生态,它可能不适合;社区版也不含 AI Assistant、SSO 等完整版功能,细节以官方文档为准。
你跑起来之后,第一件事拿 Grist 干了什么?欢迎在评论区聊聊。
【免费下载链接】grist-coreGrist is the evolution of spreadsheets.项目地址: https://gitcode.com/GitHub_Trending/gr/grist-core
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考