You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Google Sheets单元格值切换模板实现邮件合并生成不同PDF

解决方案

1. 定义双模板常量

在脚本开头先定义好默认模板和备用模板的ID:

// 预设两个模板ID
const DEFAULT_TEMPLATE_ID = '1olnBowCh-1apK3jWN-Lr2Ty3UT1NK_dmoJOVBjnzgO8';
const ALTERNATIVE_TEMPLATE_ID = '此处替换为你的备用模板ID';

2. 动态判断模板ID

找到脚本中处理选中行的核心逻辑(原脚本的processRows或主执行函数),在创建文档副本前添加判断逻辑:

// 遍历选中的每一行
rows.forEach(function(row, index) {
  // 跳过表头行(如果表格有表头)
  if (index === 0) return;
  
  // 获取当前行N列的值(N是第14列,数组索引从0开始所以取13)
  const nColumnContent = row[13];
  
  // 根据N列是否为空选择对应模板
  const targetTemplateId = (nColumnContent === '' || nColumnContent === null) ? DEFAULT_TEMPLATE_ID : ALTERNATIVE_TEMPLATE_ID;
  
  // 用选中的模板创建副本,替换原脚本中固定的GDOC_TEMPLATE_ID
  const copyId = DriveApp.getFileById(targetTemplateId).makeCopy().getId();
  const copyDoc = DocumentApp.openById(copyId);
  
  // ... 原脚本的占位符替换、PDF生成等后续逻辑
});

3. 替换原脚本的固定模板引用

把原脚本中所有使用GDOC_TEMPLATE_ID的地方,全部替换为上面生成的targetTemplateId变量。

额外注意

  • 确认N列的索引正确:如果你的表格中N列是第14列(A=1,B=2…N=14),数组索引必须用13(JavaScript数组从0计数)。
  • 确保两个模板的占位符名称完全一致,否则邮件合并的替换逻辑会失效;若占位符不同,需要额外添加模板对应的替换规则。

内容的提问来源于stack exchange,提问作者Darkoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 12:52:09