Spire.OfficeJS 的评论功能(界面中称为“批注”)让读者针对文档中的文字留下意见,而不改动正文。它和修订相互独立,批注可以答复、解决或删除,不涉及接受或拒绝修订。本文以 Word 为例,介绍 Spire.OfficeJS 提供的批注操作,以及如何按需开启、限制或隐藏批注功能。
批注能力一览
批注的入口分布在“插入”和“审阅”选项卡,以及选中文字后的浮动按钮。批注面板集中列出并管理文档中的批注。
| 能力 | 界面位置 | 说明 |
|---|---|---|
| 新建批注 | 插入 → 批注,选中文字后的浮动按钮 | 对选中的文字添加批注 |
| 答复批注 | 批注气泡或批注面板 | 在已有批注下追加回复,形成讨论串 |
| 解决批注 | 批注气泡或批注面板 | 将处理完的批注标记为“已解决”,仍保存在文档中 |
| 再次打开 | 批注气泡 | 把已解决的批注恢复为未解决 |
| 编辑批注 | 批注气泡 | 修改批注文字,开启 commentAuthorOnly 后仅能操作自己的批注 |
| 删除批注 | 审阅 → 删除 | 删除当前、全部、“我的”批注 |
| 所有批注 | 审阅 → 所有批注 | 打开批注面板,集中查看和管理批注 |
| 限制编辑 → 批注 | 审阅 → 限制编辑 | 保护文档,只允许插入批注 |
“删除”下拉菜单的三个选项:删除当前批注、删除所有批注(不区分作者)、删除我的批注(仅当前用户创建)。删除批注只移除批注本身,不改动正文,也不影响同一位置的其他批注。
配置批注能力
批注的开关由 editorAttrs 的 canComment 控制。打开文档时的面板状态和作者编辑范围,则由 user.customization.public.common 下的开关控制。
打开时展开批注面板
openAllComments 控制打开文档时是否自动展开批注面板,默认为 false。设为 true 等价于打开文档后自动点击“所有批注”,适合以处理批注为主的审阅场景。
user: {
customization: {
public: {
common: {
openAllComments: true // 打开文档时展开批注面板
}
}
}
}

仅作者可编辑批注
commentAuthorOnly 开启后,用户只能编辑或删除自己创建的批注和答复,他人的批注只能查看、答复或解决,适合需要保留原始批注记录的场景。
user: {
customization: {
public: {
common: {
commentAuthorOnly: true // 仅作者本人可编辑自己的批注
}
}
}
}

关闭批注
canComment 控制是否允许批注,默认为 true。设为 false 后,审阅选项卡中的批注按钮组会隐藏,文档中已有的批注仍可查看,但为只读。正文编辑不受影响。
editorAttrs: {
canComment: false
}
注意
canComment 只影响批注,不改变正文编辑与修订。若只需整篇文档不可编辑,请使用 editorMode: 'view'。

控制批注相关按钮
canComment 只能整体开关批注能力。如果只想隐藏部分按钮(例如去掉“插入批注”入口而保留查看和导航),可以配置 user.customization.public.common.btnPermissions.docBtnPermissions,被移除的按钮及快捷键会一并取消:
user: {
customization: {
public: {
common: {
btnPermissions: {
docBtnPermissions: [
{ modular: 'Toolbar', subModule: ['btnInsertComments'] }
]
}
}
}
}
}

更多关于按钮权限控制的配置,请参考自定义工具栏菜单。
常见问题
新建批注按钮不可用或呈灰色
常见原因:
- 没有选中文字。批注必须附着在选中的内容上。
- 光标位于图表、形状或不支持批注的内容控件(如复选框、图片、下拉列表)中。
批注作者显示为“游客”或全部相同
批注作者来自当前会话的 user.name,用户标识来自 user.id。请为每个用户传入唯一、稳定的 id 和正确的显示名。没有显示名时会显示为“游客”,多个用户共用固定账号则会导致作者全部相同。







