关于 lovstudio-fill-form
这项 Skill 根据用户提供或上下文中已有的数据填写 .docx 表单模板。它可扫描表格中的标签和值字段,也能识别合并行及段落字段,并保存填好的文档。
主要功能
- 01扫描模板中的表单字段
- 02填写表格相邻值单元格
- 03支持合并行和段落字段
- 04提问前先利用现有上下文
- 05保存填写完成的 .docx 文件
适用场景
- 01填写申请表
- 02完成登记表模板
- 03根据参考文档填充 Word 表单
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ lovstudio/ skills --skill lovstudio-fill-form安装后在 Claude Code 中输入/lovstudio-fill-form确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.mdREADME.mdscripts/fill_form.py详细介绍
fill-form — 填写 Word 表单模板
此技能可使用用户提供的数据填写 Word 文档表单模板(.docx)。 它会检测基于表格的表单字段(标签位于一个单元格中,值位于相邻单元格中), 并自动填写这些字段。
使用时机
- 用户有一个包含待填写空白字段的
.docx表单模板 - 用户想填写申请表、登记表等
- 文档使用 Word 表格布局表单(标签 | 值单元格对)
- 用户提到填表、申请表、登记表,或希望自动填写表单
工作流(必须遵循)
必须按顺序执行以下步骤:
第 1 步:扫描模板
找出所有可填写字段:
python lovstudio-fill-form/scripts/fill_form.py --template <path> --scan
第 2 步:根据已知上下文预填
向用户提问之前,先尝试根据以下来源尽可能多地填写字段:
- 用户记忆 — 姓名、职务、组织等
- 上下文文件 — 如果用户提供了参考文档(例如 STARTER-PROMPT.md、 项目文档),提取相关信息以填写内容较多的字段
- 对话上下文 — 已提及的任何信息
对于内容较多的字段(例如“主要内容/简介/摘要”),应主动结合上下文文件、 用户已知的专业知识以及主题/标题来撰写内容。
第 3 步:只询问未知信息
使用 AskUserQuestion 仅收集无法从上下文中填写的字段。
- 将字段合并到一个问题中
- 如果所有字段都未知,则列出所有字段
- 如果用户表示某些字段可以留空(例如“其他朋友会帮我填”), 请尊重这一要求并将这些字段留空
- 不要强求用户提供每个字段的信息
第 4 步:填写并保存
编写 JSON 数据文件(避免长文本的 shell 转义问题),然后运行:
python lovstudio-fill-form/scripts/fill_form.py \
--template <path> \
--data-file /tmp/form_data.json
输出路径规则:
- 默认:
<template_dir>/<name>_filled.docx(与模板位于同一目录) - 如果模板位于临时目录或系统路径中,请保存到用户的文档目录, 或询问用户要保存到哪里
- 使用
--output显式覆盖输出路径
CLI 参考
| 参数 | 默认值 | 描述 |
|---|---|---|
--template | (必需) | 模板 .doc/.docx 文件的路径 |
--output | <template_dir>/<name>_filled.docx | 输出 .docx 路径 |
--scan | false | 列出所有检测到的表单字段 |
--data | "" | 包含字段→值映射的 JSON 字符串 |
--data-file | "" | 包含字段→值映射的 JSON 文件路径 |
--font | 平台 CJK 衬线字体 | 填入文本的字体名称 |
--font-size | 11 | 字号(磅) |
字段检测原理
- 基于表格(主要方式):扫描所有表格,查找包含标签→值单元格对的行。 标签单元格包含简短文本(中文、日文或拉丁文字);相邻单元格为值字段。
- 合并行:检测包含“标签:”模式的全宽合并单元格,并将其视为较大的文本区域。
- 段落回退:如果未找到表格,则检测段落中的“标签:值”模式。
限制
.doc文件会通过 macOStextutil自动转换为.docx,但此过程会丢失表格结构。 为获得最佳效果,请直接使用.docx模板。如果只有.doc文件,请先使用 LibreOffice 转换:libreoffice --headless --convert-to docx file.doc- 字段通过规范化后的标签文本(移除空白)进行匹配。如果标签包含
不常见的格式,匹配可能会失败——请使用
--scan验证检测结果。
依赖项
python3 -m pip install python-docx
评论
支持 Markdown