name: docx description: 使用 python-docx 和 docx.js 创建、编辑和自动化 Word 文档(.docx)的专家。适用于生成 Word 文档、修改现有 docx 文件或自动化文档工作流。
DOCX 技能
目的
提供程序化 Word 文档创建和操作的专家知识。使用 python-docx 和 JavaScript 库处理文档生成、模板填充、样式管理和批量文档处理。
何时使用
- 程序化生成 Word 文档
- 用数据填充文档模板
- 修改现有的 .docx 文件
- 从 Word 文档中提取内容
- 应用样式和格式
- 创建邮件合并工作流
- 将数据转换为格式化文档
快速开始
在以下情况下调用此技能:
- 程序化生成 Word 文档
- 用数据填充文档模板
- 修改现有的 .docx 文件
- 从 Word 文档中提取内容
- 自动化文档工作流
不要在以下情况下调用:
- 编写文档内容(使用 document-writer)
- 创建 PDF(使用 pdf-skill)
- 创建电子表格(使用 xlsx-skill)
- 创建演示文稿(使用 pptx-skill)
决策框架
库选择:
├── Python 后端 → python-docx
├── Node.js 后端 → docx (npm)
├── 基于浏览器 → docx.js
├── 复杂模板 → docxtemplater
└── 简单文本提取 → mammoth
任务类型:
├── 从头生成 → 程序化构建文档
├── 填充模板 → 使用占位符替换
├── 修改现有 → 加载、编辑、保存
└── 批量处理 → 使用模板循环
核心工作流
1. 文档生成 (python-docx)
- 创建 Document 对象
- 添加带级别的标题
- 添加带文本的段落
- 应用样式(内置或自定义)
- 根据需要添加表格
- 插入图片
- 保存文档
2. 模板处理
- 加载模板文档
- 查找占位符 ({{变量}})
- 用实际值替换
- 处理条件部分
- 处理重复部分
- 另存为新文档
3. 批量文档生成
- 一次性加载模板
- 遍历数据记录
- 为每条记录克隆模板
- 填充占位符
- 生成唯一文件名
- 保存每个文档
最佳实践
- 使用段落样式,而非直接格式化
- 创建带占位符的模板以便重用
- 优雅处理缺失的占位符值
- 保留原始模板,保存到新文件
- 用复杂内容(表格、图片)测试
- 验证输出能否正确打开
反模式
| 反模式 | 问题 | 正确方法 |
|---|---|---|
| 直接格式化 | 难以维护 | 使用样式 |
| 修改模板 | 破坏原始文件 | 保存到新文件 |
| 无错误处理 | 输入错误时失败 | 先验证数据 |
| 硬编码路径 | 不可移植 | 使用相对路径 |
| 忽略编码 | 字符问题 | 使用 UTF-8 字符串 |