Word 模板绑定填充
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_078cba33/12341234。
技能介绍
解决的问题
在办公自动化场景中,经常需要将结构化的本体数据(ontology instance)回填到预置的 Word 模板里。手动逐字段替换占位符不仅效率低,还容易误改模板中无关的格式、表格结构或页眉页脚。这个技能把「读取任务上下文 → 解析绑定关系 → OOXML 级占位符替换 → 上传交付」整条链路脚本化,确保编辑只发生在精确匹配的双花括号占位符内,其余内容保持原样。
核心能力与关键步骤
- 输入解析:从用户查询中提取
task_context下载链接,拉取完整任务 JSON 并拆分为currentDocx.json、annotations.json、mapping.json、ontologyInstance.json四个片段。 - 模板下载:优先从
currentDocx.sourceFetchUrl获取源 DOCX,失败时回退到通用 URL 字段。 - 绑定构建:将每个 annotation id 关联到
mapping[id].bindings[0].propertyId,再按ontologyInstance.json中该属性的出现顺序与次数收集值序列。重复值被保留,因为同一属性多次出现往往对应不同表格行。 - OOXML 填充:
fill_docx_template.py直接在 XML 段落级做替换,跨 run 合并被拆散的占位符;表格行遇到多值时自动复制模板行并按索引逐行填充;缺失值保留原占位符不动。 - 上传交付:将生成的 DOCX 推送至 TUSD 文件服务,最终仅返回一个结果块,不暴露本地路径或中间 JSON。
适用边界与注意点
- 严格替换守卫:只替换与
annotations.json中双花括号文本精确匹配的占位符,不会改写、合并或润色占位符以外的任何文字,替换范围限定在段落级而非文档/表格/单元格级。 - 占位符映射约束:同一占位符文本若在不同文档位置绑定不同 property id,各位置保持独立值变体;同一 property 被多个 annotation 引用时,值序列只收集一次。
- 失败处理:
task_context缺失或无效、源模板 URL 不可达、TUSD 上传失败时,技能明确报错而非静默降级或伪造 URL。 - TUSD 配置:默认指向内网
http://192.168.0.192:1080/plm/files/,可通过TUSD_BASE_URL或--base-url覆盖;鉴权由TUSD_AUTHORIZATION或--authorization控制。
使用场景
- 拿到带 task_context 下载链接的任务,自动下载任务 JSON 并拆出模板、注解、映射和本体实例。
- 从 currentDocx.sourceFetchUrl 下载 Word 模板,将绑定值填入指定双花括号占位符并保留未填项。
- 当表格行占位符对应多个本体值时,复制模板行并按出现顺序逐行填充,避免手动拆行。
- 生成 DOCX 后上传 TUSD,只返回结果块,不暴露本地路径或中间 JSON。
适合人员
- 需要把本体实例数据回填到指定 Word 模板的 PLM/业务系统工程师。
- 负责模板占位符映射与多值表格行生成,并要求严格不改非占位符文本的办公自动化工程师。
- 要调用 task_context 接口批量产出 DOCX 并上传 TUSD 的后端或集成开发。
- 需要排查占位符未替换、重复值对应表格行、TUSD 上传失败问题的运维/测试工程师。