Google Sheets 生成 Google Docs:逐行合并与审核
Google Sheets 生成 Google Docs 时,先选择已批准的记录,将字段映射到受控文档模板,再为每个通过审核的数据行复制模板,并检查合并后的文本。经过审核的逐行文档合并会同时保留原始记录标识和新文档标识。本指南中的“Google Docs 邮件合并”指文档生成;邮件发送不在其范围内。
交付成果是每个通过审核的数据行对应的一份可供审核的文档,以及一份核对台账。对于经过测试的表单接收与文档创建,表单转 Docs 配方在考虑换行符从 CR+LF 变为 LF 后,报告结果为 42/42。读取电子表格数据行、复制模板及本批次合并均不在该结果的范围内。
示例配置,并非已记录的测试。逐行生成文档的各阶段在目录中已有说明;Ai Flowi 尚未将其作为这一组合流程进行生产环境测试。
1. 准备受控的数据源与模板
按照Google 授权指南连接 Google 账号,以执行 Sheets、Drive 和 Docs 操作。分别检查源电子表格、模板和目标文件夹的权限:能够读取候选数据行,并不意味着可以复制模板或检查生成的文档。
这种字段替换方案不需要模型。任何新增的 API 或模型阶段都需要你在相应服务中的账号凭据,并产生单独费用;请查阅服务凭据参考。首批使用合成数据,审核完成的文档后,再处理获准使用的业务记录。
选择不可更改的源导出文件,或在本次审核运行期间冻结选定的数据行。为每条记录分配排序后仍然有效的稳定 ID。电子表格行号表示位置,并非持久的记录标识。同时记录模板版本,因为模板变化会改变其他条件相同的重新运行所产生的结果。
相关内容:Notion 导出 Google Docs。
相关内容:Google Drive 集成:AI Flowi Workflow。
2. 明确数据行到占位符的映射
合成的培训摘要电子表格可使用表头 record_id、approved、display_name 和 session_title。模板包含 {{display_name}} 和 {{session_title}}。这些名称和分隔符是需要配置并检查的建议选择,并非文档中规定的默认值。
在窄屏上,可横向滚动映射表;该区域也支持获取焦点后,通过键盘浏览各列。
| 记录 | 给定条件 | 人工设定的接收目标 |
|---|---|---|
| TRAIN-A | 已批准,ID 稳定,两个必填文本字段均存在。 | 可生成一份待审核的模板副本。 |
| TRAIN-B | 未提供批准信息,或明确不予批准。 | 在复制任何文档前排除。 |
| TRAIN-C | 已批准,但培训场次标题为空。 | 拒绝并记录缺失字段。 |
| 再次出现 TRAIN-A | 同一 ID 出现内容冲突。 | 暂停处理该标识,等待核对;不要悄悄选择其中一行。 |
这些是人工规定的目标,并非实际观察到的合并结果。读取数据前,先决定如何表示批准状态。不要仅因“no”之类的字符串非空,就将其视为批准。将标识符保留为文本,并在任何规范化处理前保留原始值。
3. 配置可用操作
Template Merge 在指定文档中替换数据行字段;它必须接收通过审核的记录所对应的副本 ID,而非原模板 ID。组件目录将该操作与 Copy File、Loop 分开,因此复制和迭代都需要独立阶段。
| 组件 | 需设置的字段 | 需检查的结果 |
|---|---|---|
| Read Range | google_account:已授权账号;spreadsheet_id:源电子表格;range_name:包含表头行的候选单元格范围。 | values:JSON。检查表头顺序、空白单元格和返回数据的封装结构。 |
| JSON Operations | data:已检查的范围 JSON;operations:"JQ Expression";query:已审核的表头映射及批准状态、字段检查。 | data_output:JSON,包含通过审核的数据行和拒绝原因。 |
| Loop | data:已审核、仅包含通过审核数据行的 Table。 | item:JSON;done:Table。确认每项的结构及结果汇总方式。 |
| Copy File | google_account、file_id:受控模板;选择 new_name 和 destination_folder_id。 | file:JSON。记录复制文件的实际标识符。 |
| Template Merge | google_account、document_id:已检查的副本;values:通过审核的字段映射。明确设置 prefix、suffix 和 match_case。 | result:JSON。审核文档,不要假定所有预期占位符都已匹配。 |
| Get Text | google_account 及副本的 document_id。 | text_data:JSON。其说明为从所有标签页提取纯文本。 |
Read Range 的 JSON 和 JSON Operations 的 JSON 与 Loop 的 Table/DataFrame 输入并不直接匹配。在此交接点准备经过审核的 Table;本示例没有假设存在自动转换。同样,Copy File 的 JSON 与 Template Merge 中兼容 Message 的 document_id 并不直接匹配。合并前先检查并提供副本 ID。
4. 用一行数据走完审核流程
- 读取声明的范围,将表头单元格与已批准的映射比较。若必需表头缺失、重复或意外改名,则停止。
- 使用 JSON Operations 整理并验证实际返回的数据。将被拒绝的记录排除在通过审核的 Table 之外;在审核备注中保留其 ID 和原因。
- 扩大批次前,先检查一个 Loop 项。导出内容没有提供完整的循环回接配方,也未保证顺序、并行行为或重试方式。
- 为该通过审核的记录复制模板。立即记录返回的副本 ID,避免后续失败导致已创建文档失去追踪。
- 将 Template Merge 指向该副本,并提供仅包含已审核替换字段的 values 对象。确认占位符拼写及选定的标签页范围。
- 使用 Get Text 并打开副本。将替换后的文本与数据行比较,检查排版后,再将记录标记为已审核。
在受控编辑器运行证实响应结构前,明确保留每个审核交接步骤。名为 id 的字段属于正在检查的响应;选择标识符映射前,分别检查每个后续组件。整个流程没有经过验证、可直接粘贴运行的映射。
5. 保留结果台账并核对重新运行
针对每个选定标识,记录数据源版本、模板版本、副本文档 ID、合并状态、回读审核和下一步操作。区分“尚未开始”“已记录副本”“合并状态不确定”和“已审核”。这些是建议的台账状态,并非工作流原生状态值。
如果复制后合并失败,副本可能仍然存在。如果写入后响应丢失,重试前先检查已记录的文档。从 Copy File 开始重试可能再创建一份文档。重复使用标题不能证明去重有效;本方案没有原子批次事务或持久的幂等机制。
重新运行时,将记录 ID 及两个版本与台账比较。只有审核人员确认已知副本的状态后,才能继续处理或替换它。外部台账需要自己的持久化和访问规则;仅凭 Loop 的 Done Table,无法确定中断后如何恢复批次。
6. 如何检查残留占位符和部分失败?
测试值缺失、占位符拼写错误、占位符重复、源文本字面内容中的大括号,以及后续数据行失败。搜索已审核文档中的选定分隔符,再将每个疑似残留项与模板比较:源文本可能合理地包含大括号。Get Text 可用于内容检查,打开文档则用于检查格式和标签页位置。
不要因为一份文档看起来正确,就将整个批次标记为完成。将每条通过审核的记录与其文档 ID 和审核决定逐一核对,并单独保留被拒绝的记录。如果批次很小,维护恢复状态只会增加不必要的工作,则使用手动复制粘贴。
套餐:Go 年付方案每月 USD8 起(月付 USD10),Plus 年付方案每月 USD16 起(月付 USD20),Pro 100 年付方案每月 USD80 起(月付 USD100),Pro 200 年付方案每月 USD160 起(月付 USD200),Pro 500 年付方案每月 USD400 起(月付 USD500),每月包含 5,000 至 250,000 个 Flowi Tokens,并支持充值;每次节点运行消耗 1 个 token;不包含第三方 API 和模型使用费用。
检查读取、验证、迭代、复制、合并和回读各阶段的实际执行情况。本方案未报告自动邮件发送或成功的无人值守批量处理。
作者:Ai Flowi · 发布于 。