调整Google API邮件合并代码 实现所有行数据写入同一工作表
谷歌文档API邮件合并单文档输出调整方案
你当前使用的官方默认邮件合并示例逻辑是逐行遍历数据源时,每次都新建一个模板副本进行占位符替换,所以才会每行对应生成一个独立文档。要实现所有行数据写入同一个文档,按以下步骤调整代码即可:
- 调整文档初始化逻辑:把原来写在数据行循环内部的「复制模板生成新文档」逻辑挪到循环外,全局仅生成1个模板副本作为最终输出文档,后续所有行的内容填充都在这个文档内操作。
- 修改内容追加与替换规则:每次处理一行数据前,先将完整的模板结构(包含所有格式、表格、占位符)追加到输出文档的末尾,可根据需要在两段内容之间插入分页符保证每条记录独立分页,再针对刚追加的这段内容执行占位符替换。注意要限制替换的区间为刚追加的内容段,避免覆盖之前已经完成替换的内容,可通过记录每次插入内容的起止索引实现范围限制。
- 优化API请求提交逻辑:不要每处理完一行就提交一次批量更新请求,可选择所有行处理完成后统一提交,或每处理10-20行提交一次,既降低API调用频次,也能避免触发接口配额限制。
- 移除冗余逻辑:删掉循环内部的独立文档导出、分享相关代码,所有行处理完成后仅导出全局唯一的输出文档即可。
如果你的模板包含复杂的表格、自定义样式,复制模板结构时要完整复制元素的格式属性,不要仅插入纯文本,避免最终输出的格式和模板不一致。
内容的提问来源于stack exchange,提问作者Hani
相关产品推荐
相关产品推荐

