SuperAPI AI 工具集

docx

办公与效率

查看项目

更新于 10-15 18:10

技能介绍

用途

docx 技能用于创建、读取、编辑和操作 Word 文档(.docx 文件)。当用户需要处理 Word 文档时触发,例如提及“Word doc”等。

基本原理

.docx 文件本质上是一个 ZIP 归档,内部包含 XML 文件。技能围绕这一结构提供读取、创建和编辑能力。

主要能力

读取与分析内容

  • 使用 pandoc 提取文本,支持追踪修订:pandoc --track-changes=all document.docx -o output.md
  • 解包获取原始 XML:python scripts/office/unpack.py document.docx unpacked/
  • 转换为图片:先用 soffice.py 转 PDF,再用 pdftoppm 转 JPEG
  • 接受追踪修订生成干净文档(需 LibreOffice):python scripts/accept_changes.py input.docx output.docx

创建新文档

使用 docx-js(JavaScript 库),安装命令:npm install -g docx。创建后需校验:python scripts/office/validate.py doc.docx,若失败则解包、修复 XML、重新打包。

覆盖的排版能力包括:

  • 页面尺寸:docx-js 默认 A4,需显式设置。US Letter 为 12240 x 15840 DXA,A4 为 11906 x 16838 DXA(1440 DXA = 1 英寸)。横向时传入纵向尺寸并设置 orientation: PageOrientation.LANDSCAPE。
  • 样式:可覆盖内置标题样式,使用精确 ID(如 "Heading1"),需包含 outlineLevel 以支持目录。
  • 列表:禁止使用 unicode 项目符号,应使用 LevelFormat.BULLET 配合 numbering 配置。
  • 表格:需同时设置 columnWidths 和单元格 width,使用 WidthType.DXA(不用 PERCENTAGE),使用 ShadingType.CLEAR(不用 SOLID),并添加单元格边距。
  • 图片:ImageRun 必须指定 type(png/jpg 等),altText 三项均需提供。
  • 分页:PageBreak 必须放在 Paragraph 内。
  • 超链接:支持外部链接和内部书签链接。
  • 脚注、制表位、多栏布局、目录、页眉页脚等。

编辑现有文档

遵循三步流程:

  1. 解包:python scripts/office/unpack.py document.docx unpacked/,提取 XML、美化打印、合并相邻 run、转换智能引号。
  2. 编辑 XML:编辑 unpacked/word/ 下的文件。追踪修订和批注作者默认使用 "Claude"。使用 Edit 工具直接替换字符串,不写 Python 脚本。新内容使用智能引号 XML 实体。添加批注可用 comment.py。
  3. 重新打包:python scripts/office/pack.py unpacked/ output.docx --original document.docx,带自动修复校验。

转换旧版 .doc

旧版 .doc 文件编辑前需转换:python scripts/office/soffice.py --headless --convert-to docx document.doc

适用场景

  • 程序化生成 Word 文档(报告、合同、信函等)
  • 批量读取或分析 Word 文档内容
  • 编辑现有 Word 文档并保留追踪修订
  • 处理旧版 .doc 文件

限制与注意事项

  • 创建文档依赖 docx-js(Node.js 环境)
  • 部分转换功能(如接受修订、转 PDF)依赖 LibreOffice
  • 自动修复无法处理:格式错误的 XML、无效元素嵌套、缺失关系、schema 违规
  • 表格不能用作分隔线,单元格有最小高度会渲染为空框
  • 目录要求标题仅使用 HeadingLevel,不能使用自定义样式
  • 追踪修订时需替换整个 <w:r> 元素,并保留 <w:rPr> 格式
  • 删除整段内容时需同时标记段落标记为删除

暂未提供

关于该技能的收费、价格、平台支持范围等具体信息,资料中暂未提供。