Repository analysis · docx 9.6.1

docx 可以做什么,不可以做什么

这不是一个“MS Word 全功能替代品”,而是一个非常成熟的程序化 .docx 生成库。 它对常见文档生成、排版、注释、目录、批注、公式、页眉页脚、模板 patch 等能力覆盖很深; 但如果把目标放大到 Word 整个产品的功能全集,它并不支持“绝大多数 Word 功能”

一句话判断

Two-axis verdict
作为 docx 生成库 支持度高,适合生产使用

覆盖正文、表格、图片、分页、样式、目录、批注、脚注、公式、修订标记、模板 patch 等主流输出能力。

作为 Word 全功能实现 不属于“支持绝大多数”

缺少图表、SmartArt、宏/VBA、OLE、文档保护、数字签名、完整表单控件、通用 round-trip 编辑等大块能力。

分析依据

Repository signals
100 demo 文件
35 usage 文档页
194 spec 测试文件

docx 可以做什么

Strong support

富文本与段落排版

支持 TextRun / Paragraph 层的大量格式能力。

  • 粗体、斜体、下划线、删除线、上下标、大小写、小型大写
  • 高亮、阴影、颜色、边框、换行、分页控制
  • 对齐、缩进、间距、tab stops、outline level、word wrap

页面与分节

这块实现相当完整,适合报告、合同、书籍、模板文档。

  • section、分页方向、纸张尺寸、页边距、页边框
  • 多栏、行号、不同首页/奇偶页页眉页脚
  • 页码、节页码、页面文本方向、垂直对齐

表格

表格是这个库的强项之一,覆盖深度明显高于“只能插简单表格”的级别。

  • 表格宽度、缩进、浮动表格、table layout、table look
  • 单元格宽度、边框、阴影、垂直对齐、嵌套表格
  • 行/列合并、重复表头、分页控制、右到左表格

图片与定位

不是只有插图,还支持不少 Word 常见的图片布局能力。

  • jpg / png / gif / bmp / svg(含 fallback)
  • inline / floating、定位、z-index、允许重叠
  • 文字环绕、边距、旋转、翻转、替代文本

结构化内容

能生成不少“文档功能性”元素,而不只是纯文本。

  • 编号/项目符号、多级编号、超链接、书签、PAGEREF
  • 目录、字段、页码字段、SEQ 字段、简单 mail merge 字段
  • 脚注、尾注、批注、数学公式、文本框、文本框形状

样式、字体与模板

对“把文档做得像正式 Word 模板”这件事支持较好。

  • JS 声明式样式、外部 XML styles、文档默认样式
  • 自定义字体嵌入、character/paragraph styles
  • patchDocument 模板替换、占位符 patch

部分支持 / 有边界的能力

Partial or bounded
修订(Track Changes)支持“生成标记”,不是完整审阅系统

源码里有 InsertedTextRunDeletedTextRun、表格插入/删除、样式修订等实现,也支持文档级 trackRevisions 开关;但没有看到 accept/reject revisions、文档比较、冲突合并这类完整审阅工作流。

模板修改是强项,但不是通用 docx round-trip 编辑器

patchDocument 明确是占位符替换/patch 流程,适合基于现有模板注入段落、表格、图片、超链接;这和“任意读取现有 Word 文档、解析成 AST、自由编辑后再写回”不是一回事。

Mail merge 是字段级支持,不是完整 merge 引擎

仓库有 SimpleMailMergeField / MERGEFIELD 相关实现,可以生成字段;但没有看到连接 Excel/数据库并执行批量合并的完整数据源工作流。

形状/文本框不是“全量 Drawing 功能”

仓库支持 VML Textbox、WPS Text Box、WPG Group、图片 outline / floating 等,但没有看到完整 AutoShape/SmartArt/chart 体系,因此更准确的说法是:支持一部分文本框与图形包装能力,而非 Word 全部绘图能力。

评论线程文档与源码存在轻微错位

文档页提到 comment reply 的 parentId,但源码里的 ICommentOptionsComment 实现没有这个字段。也就是说,基础 comments 明确支持;回复线程至少从当前源码看,并不应直接算“已确认支持”。

docx 不可以做什么

Missing major areas

Word 高级对象与 Office 生态能力

  • 图表:未见 c:chart / chart API 实现
  • SmartArt / diagram:未见相关实现
  • OLE 嵌入对象、附件式 package、嵌入 Excel/Visio 对象
  • 宏 / VBA / vbaProject
  • 数字签名、签名线、文档加密

表单与内容控件的完整体系

  • 当前明确看到 checkbox 和 TOC 使用的 SDT 能力
  • 未见 drop-down list、combo box、date picker、rich text/plain text content control
  • 因此不能把它视为“完整 Word 表单控件库”

文档治理与保护

  • settings.ts 中仅见 documentProtection 的 schema 注释,未见公开实现
  • 未见密码保护、限制编辑、IRM、文档加密
  • 未见数字签章相关 part/relationship 体系

完整编辑器/审阅器能力

  • 未见通用导入解析与 round-trip 编辑 API
  • 未见 accept / reject revisions
  • 未见 compare / combine documents
  • 未见拼写检查、语法检查、协作批注系统这类应用层能力

其他重要结论

What matters in practice

它适合什么场景

  • 合同、报告、发票、简历、证明、批量导出文档
  • 需要精细控制排版、样式、页眉页脚、页码、目录的业务文档
  • 基于模板做占位符替换和数据灌入
  • Node.js / 浏览器侧程序化生成正式 Word 文档

它不适合什么场景

  • 要复刻 Microsoft Word 桌面端的大而全功能
  • 要做图表驱动的 Office 报表设计器
  • 要做复杂交互表单、保护文档、签章、审阅流转平台
  • 要做“打开任意 docx → 解析编辑 → 原样写回”的通用编辑器

我为什么这样判断

Evidence from repo

文档与 demo 很完整

仓库有 100 个 demo、35 个 usage 文档页,覆盖段落、图片、表格、页眉页脚、脚注尾注、批注、公式、字段、模板 patch 等,说明“生成文档”这一侧已经非常成熟。

源码模块能对上主流功能

paragraphtabledrawingstylestable-of-contentstrack-revisionfontscheckboxtextbox 等模块都是真实存在的。

缺失区域也很明确

精确搜索未见 c:chartsmartartvbaProjectaltChunkdropDownListdatePickersignatureLine 等实现痕迹,说明不是“没文档而已”,而是大概率没做。