mcpField
L
lovstudio-fill-form

lovstudio-fill-form

github.com/lovstudio文档处理7391 次安装今天更新
代码仓库

关于 lovstudio-fill-form

这项 Skill 根据用户提供或上下文中已有的数据填写 .docx 表单模板。它可扫描表格中的标签和值字段,也能识别合并行及段落字段,并保存填好的文档。

主要功能

  1. 01扫描模板中的表单字段
  2. 02填写表格相邻值单元格
  3. 03支持合并行和段落字段
  4. 04提问前先利用现有上下文
  5. 05保存填写完成的 .docx 文件

适用场景

  1. 01填写申请表
  2. 02完成登记表模板
  3. 03根据参考文档填充 Word 表单

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lovstudio/skills --skill lovstudio-fill-form

安装后在 Claude Code 中输入/lovstudio-fill-form确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CHANGELOG.md
README.md
scripts/
fill_form.py

详细介绍

fill-form — 填写 Word 表单模板

此技能可使用用户提供的数据填写 Word 文档表单模板(.docx)。 它会检测基于表格的表单字段(标签位于一个单元格中,值位于相邻单元格中), 并自动填写这些字段。

使用时机

  • 用户有一个包含待填写空白字段的 .docx 表单模板
  • 用户想填写申请表、登记表等
  • 文档使用 Word 表格布局表单(标签 | 值单元格对)
  • 用户提到填表、申请表、登记表,或希望自动填写表单

工作流(必须遵循)

必须按顺序执行以下步骤:

第 1 步:扫描模板

找出所有可填写字段:

python lovstudio-fill-form/scripts/fill_form.py --template <path> --scan
第 2 步:根据已知上下文预填

向用户提问之前,先尝试根据以下来源尽可能多地填写字段:

  1. 用户记忆 — 姓名、职务、组织等
  2. 上下文文件 — 如果用户提供了参考文档(例如 STARTER-PROMPT.md、 项目文档),提取相关信息以填写内容较多的字段
  3. 对话上下文 — 已提及的任何信息

对于内容较多的字段(例如“主要内容/简介/摘要”),应主动结合上下文文件、 用户已知的专业知识以及主题/标题来撰写内容。

第 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 路径
--scanfalse列出所有检测到的表单字段
--data""包含字段→值映射的 JSON 字符串
--data-file""包含字段→值映射的 JSON 文件路径
--font平台 CJK 衬线字体填入文本的字体名称
--font-size11字号(磅)

字段检测原理

  1. 基于表格(主要方式):扫描所有表格,查找包含标签→值单元格对的行。 标签单元格包含简短文本(中文、日文或拉丁文字);相邻单元格为值字段。
  2. 合并行:检测包含“标签:”模式的全宽合并单元格,并将其视为较大的文本区域。
  3. 段落回退:如果未找到表格,则检测段落中的“标签:值”模式。

限制

  • .doc 文件会通过 macOS textutil 自动转换为 .docx,但此过程会丢失表格结构。 为获得最佳效果,请直接使用 .docx 模板。如果只有 .doc 文件,请先使用 LibreOffice 转换:libreoffice --headless --convert-to docx file.doc
  • 字段通过规范化后的标签文本(移除空白)进行匹配。如果标签包含 不常见的格式,匹配可能会失败——请使用 --scan 验证检测结果。

依赖项

python3 -m pip install python-docx

评论

支持 Markdown