很多团队把在线表格理解成“打开就能多人编辑”的前端能力,但 Odoo 企业版里的 Spreadsheet 远不止这点。真正撑住协同的是 documents_spreadsheet、spreadsheet_edition 与 documents 这一套文档链:谁能打开、谁能保存 revision、谁在 contributor 列表里靠前,都是文档对象层的结果。
1. Spreadsheet 在企业版里先是 Documents 文档,再是可编辑表格
documents_spreadsheet 的核心不是做一个格子界面,而是让 Spreadsheet 受 folder、owner、access group 与文档生命周期治理。这样系统处理的就不是一段浏览器内存里的 JSON,而是一份可归档、可共享、可继续追责的文档对象。
2. revision 语义决定“协同”到底是不是同一份文档
spreadsheet_edition 的价值,在于把前端编辑结果持续回写为文档 revision,而不是让多人各自保存临时副本。也因此“同一张表”的判断标准,不是标题一样、URL 一样,而是是否沿着同一个文档对象与 revision 历史在演进。
3. contributor 顺序不是装饰字段,而是协作上下文的一部分
企业里最容易忽视的,是 contributor 列表和最后编辑者顺序。Spreadsheet 文档一旦纳入 Documents,对外展示的参与人、最近编辑轨迹和 owner 关系就不再只是 UI 点缀,而是后续审计、回滚和责任定位的一部分。谁是 owner,谁只是贡献者,谁最后改动过,都必须和文档 revision 一起看。
4. 访问边界不会因为“在线协作”四个字自动消失
很多实施误判为:既然表格能协作编辑,那打开页面的人就应该天然能改。企业版实际上反过来——能否编辑,最终还得看底层 document access 与 revision 回写权限。Spreadsheet 的前端体验可以很轻,但安全边界仍然是 Documents 说了算。
结论
所以,Odoo 企业版电子表格不是“谁打开都能改”的轻量协作件,而是一份受 Documents 持有、由 Spreadsheet revision 递进、再由 contributor 与 owner 关系补全责任上下文的协作文档。
主要源码锚点:
enterprise/documents_spreadsheetenterprise/spreadsheet_editionenterprise/documents
DISCUSSION
评论区