乐于分享
好东西不私藏

[dify实战]Word 模板自动填充升级篇:Dify 搞定“勾选框 + 动态表格”

[dify实战]Word 模板自动填充升级篇:Dify 搞定“勾选框 + 动态表格”

前段时间我已经写过2篇 Word 模板自动填充的文章

[dify实战]用 Dify 实现「带格式 Word 模板自动填充」的一次实践复盘

【dify实战】Word 模板自动填充实操指南

主要解决两类最常见的问题:

·【数字序号】填充:比如 【1】、【2】… 这种表单式占位

·【下划线空】填充:模板里一串“_____”或下划线样式空格,按顺序把值写进去

这两块跑通后,绝大多数“固定字段”都能自动生成了。

但在真正的业务材料里,还有两块一直绕不过去——也是最容易让自动化“卡壳”的地方:

1.勾选框:Word 里那堆 □/ 选项

2.动态表格:表格行数不固定

这篇文章就专门讲:我如何在 Dify 里把这两块打通,做到:

输入 JSON → 输出已填好的 docx         勾选框自动勾选、表格按数据条数自动扩展行,并且保留模板样式。


一、先说结论:为什么这两块是“硬骨头”?

1)勾选框难在“看起来简单,但容易混乱”

·选项多、编号多,人工勾选极易出错

·模板改一版,选项顺序变了,之前的脚本就对不上

2)动态表格难在“它不是替换文字,是改结构”

普通 {{key}} 只是“替换文本”。          动态表格要做的是:

·找到“模板行”

·按数据条数复制行

·每行填不同数据

·删除模板行

·表格线、字体、底纹、对齐要保持模板不变

一句话:动态表格是“结构级”生成,不是“文本级”替换。


二、能力 1:勾选框自动勾选( / □)

1)模板怎么写?用占位符把勾选框“变成可计算的”

在 Word 模板里,我把每个选项写成:

·{{CHECK_1}} 选项A·{{CHECK_2}} 选项B··{{CHECK_8}} 选项H

也就是:勾选框本身不写死,而是留给程序决定是  还是 □。

模板中是这样填写的

2)Dify 入参怎么传?

我在 Dify 里约定:

"checks": {"selected":[1, 4, 6],"total": 8}

工具端生成映射:

·CHECK_1 → ☑·CHECK_2 → □··CHECK_8 → □

然后走一遍普通 {{key}} 替换即可,模板里的勾选框就会自动“亮起来”。

这样做的好处是:模板只要保持 CHECK 编号一致,后续增删选项也不影响主逻辑。

三、能力 2:动态表格按行扩展(保留表格线与样式)

1)模板怎么做?关键是“模板行 + marker”

每张需要动态扩展的表格,预留一行“模板行”,并放一个 marker(行标记):

比如贷款融资情况这张表:

·第一列:{{ROW_LOAN}}{{org}}

·第二列:{{amount}}

·第三列:{{guarantee}}

·第四列:{{bank_level}}

·第五列:{{term}}

模板里是这样的定义的

一个非常重要的约定:marker({{ROW_LOAN}})只放一次(建议第一列)。          这会让定位模板行、复制行、清理 marker 变得非常稳定。

2)Dify 入参怎么传?(tables 结构)

我在 Dify 里约定:所有动态表格都放在 tables:

"tables": {"ROW_LOAN":[{"org":"工行", "amount": "1000", "guarantee": "信用", "bank_level": "正常", "term": "1年"},{"org":"建行", "amount": "2000", "guarantee": "抵押", "bank_level": "正常", "term": "2年"}],"ROW_CTRL_LOAN":[{"org":"张三", "amount": "300", "guarantee": "信用", "bank_level": "正常", "term": "6个月"}]}

根据表格的个数修改模板中的占位符

工具端做的事其实很“模板引擎”:

1.遍历所有表格

2.找到包含 {{ROW_xxx}} 的模板行

3.永远从模板行 XML 克隆出新行(样式完全保留)

4.替换每行字段占位符

5.删除模板行

四、把能力放到 Dify 里:为什么更适合“业务落地”?

因为 Dify 的价值不只是“能跑脚本”,而是它能把能力变成一个可复用的节点/工具:

·上游:从业务系统/接口取数(或让智能体生成结构化 JSON)

·中间:Word 模板填充工具(输出 base64)

·下游:下载、归档、发送 OA、推送到流程系统

最终的工作流就是:          

五、总结:这篇解决了哪两件事?

如果把我这个系列文章当成“逐步补齐 Word 自动化能力”,那么:

·前几篇:解决 【数字序号】【下划线空】 —— 固定字段基本自动化

·这一篇:补齐 【勾选框】【动态表格】 —— 结构级填表也能自动化

到这里,常见的业务 Word 模板基本就能“全自动生成”了。

如果你觉得这篇对你有帮助,欢迎 点赞、在看、转发、收藏

×
订阅图标按钮