Word文档自动生成编辑|简诗 AI:在 Skill 里用 python-docx 程序化生成 Word

前言

在大模型工作流里生成 Word 文档,常见做法是让模型直接输出 Markdown,再转成 docx。这条路能跑通,但标题层级、字体样式、表格结构、图片插入都由转换工具决定,控制力有限,复杂排版容易走样。另一种做法是让模型写一段 Python 脚本,用 python-docx 库把文档结构描述落到 .docx 文件里,格式由代码逐项控制。

下面介绍的 Skill「Word文档自动生成编辑|简诗 AI」就是后者。它把 python-docx 的操作封装成一个通用 SKILL.md 格式的 Skill,供支持该格式的编辑器调用,避免模型每次从零回忆 python-docx 的 API。

这是什么

一句话定位:一个基于 python-docx 的程序化 Word 文档创建与编辑 Skill。

  • Skill 名称:Word文档自动生成编辑|简诗 AI
  • 坐标:@user_fccf428b/docx-manipulation
  • 版本:1.0.1
  • 来源:community(社区发布)
  • 发布者:user_fccf428b
  • 分类:office-efficiency
  • 标签:requires_api_key=false(不需要 API Key)
  • SkillHub 数据:评分 100000,下载 2856 次,安装 0

它解决的问题是:在 Cursor 等支持 SKILL.md 的编辑器中,让模型按照统一的技能说明,用 Python 代码创建带专业格式、表格、图片的 Word 文档,而不是靠模板拼接或格式转换。

核心功能

按官方简介,该 Skill 的能力与 python-docx 库的能力一致,具体包括:

  1. 程序化创建 .docx 文档:新建空文档、写入段落、标题、正文。
  2. 专业格式控制:段落样式(Intense Quote、List Bullet、List Number 等内置样式)、字体加粗与斜体等 run 级属性、标题层级(Heading 0/1/2…)、分页符。
  3. 表格:按行和列建立表格,写入表头和单元格内容。
  4. 图片:插入本地图片并控制宽度等尺寸属性。
  5. 文档保存:生成可直接交付的 .docx 文件。

这些能力对应的是 python-docx 库本身的 API(Document、add_heading、add_paragraph、add_table、add_picture、add_page_break、save 等),并非 Skill 作者自研的新功能。Skill 的价值在于把这些操作整理成模型可遵循的操作规程。

安装与启用

该 Skill 是通用 SKILL.md 格式,官方资料中没有给出统一的安装命令或目录约定;本次抓取时 SkillHub 官方页面返回失败,因此 Cursor / Codex CLI / Claude Code 各自的启用方式无法从官方来源核实,此处不展开,请以官方地址页面的说明为准。

它依赖的 python-docx 库需要单独安装。根据 python-docx 官方文档(当前版本 1.2.0)的 Installing 一节,安装命令如下:

pip install python-docx

安装后即可在 Python 中 from docx import Document 使用。注意:Skill 资料中 requires_api_key=false,不需要任何外部 API Key,文档生成完全在本地完成。

典型用法

以下示例整理自 python-docx 官方文档的 Quickstart,展示了该 Skill 覆盖的核心操作链路:创建文档 → 写标题与段落 → 套用样式 → 插入表格与图片 → 保存。

先写标题、段落和带样式的文本:

from docx import Document
from docx.shared import Inches

document = Document()

document.add_heading('Document Title', 0)

p = document.add_paragraph('A plain paragraph having some ')
p.add_run('bold').bold = True
p.add_run(' and some ')
p.add_run('italic.').italic = True

document.add_heading('Heading, level 1', level=1)
document.add_paragraph('Intense quote', style='Intense Quote')
document.add_paragraph('first item in unordered list', style='List Bullet')
document.add_paragraph('first item in ordered list', style='List Number')

再插入图片和表格,最后分页并保存:

document.add_picture('monty-truth.png', width=Inches(1.25))

records = (
    (3, '101', 'Spam'),
    (7, '422', 'Eggs'),
    (4, '631', 'Spam, spam, eggs, and spam'),
)

table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for qty, id_, desc in records:
    row_cells = table.add_row().cells
    row_cells[0].text = str(qty)
    row_cells[1].text = id_
    row_cells[2].text = desc

document.add_page_break()
document.save('demo.docx')

在 Skill 的调用方式下,以上内容由模型按 SKILL.md 规程生成并执行,执行结果即 demo.docx 文件。

适用场景与注意

适合的场景:

  1. 需要批量、可重复生成 Word 文档(合同、报告、清单、通知书等),格式由代码固定,改模板只需改脚本。
  2. 需要在 Cursor 等编辑器中让模型直接产出 .docx,而不是先生成 Markdown 再转换。
  3. 需要本地离线完成,不依赖任何在线文档服务或 API Key。

需要注意的限制:

  1. 该 Skill 依赖 python-docx,而 python-docx 只处理 .docx(Office Open XML)格式,不支持旧的 .doc;.doc 文件需要先转换。
  2. Skill 的能力边界等于 python-docx 的能力边界,库未覆盖或覆盖不全的排版需求(页眉页脚、批注等)需要自行扩展代码。
  3. 官方资料未提供该 Skill 的详细 SKILL.md 正文,上述典型用法来自 python-docx 官方文档;如需确认 Skill 内部的操作规程,请以官方地址页面为准。
  4. SkillHub 页面显示安装数为 0、来源为 community,属于社区发布,使用前建议先按上述示例小范围验证。

结尾

这个 Skill 的价值不在于发明新能力,而在于把 python-docx 这套成熟的文档生成操作固化成模型可以直接遵循的规程,省去每次从零回忆 API 的成本。如果你的工作流里经常要产出格式可控的 Word 文档,且环境是 Cursor 一类支持 SKILL.md 的编辑器,可以从上面的最小示例开始试。

官方地址:https://api.skillhub.cn/user_fccf428b/docx-manipulation

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜