You need to enable JavaScript to run this app. Google Apps Script发送邮件无法合并同公司多行数据问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script发送邮件无法合并同公司多行数据问题求助

解决方法

你当前脚本重复发信的核心原因是直接遍历所有符合条件的行、每行触发一次发信逻辑,没有做同公司数据的聚合。你可以先按公司名称对过滤后的数据做分组,每个公司仅触发一次发信,合并该公司下的所有对应条目到邮件内容中即可。

修改后的完整代码如下:

function HLReminderAtYE(){
  var SS = SpreadsheetApp.getActiveSpreadsheet();  //declare the spreadsheet
  var Sheet = SS.getSheetByName("Tax_Master");  //declare sheet name
  var Range = Sheet.getDataRange(); //to set the range as array
  var Values = Range.getDisplayValues(); //to get the value in the array  

  let fvs = Values.filter(function (item) { return item[13] == "Y" }); // 过滤N列为Y的条目
  
  var templateText = SS.getSheetByName("Template").getRange(1,1).getValue();

  // 新增:按公司名称分组聚合数据
  const companyGroups = {};
  fvs.forEach(row => {
    const companyName = row[0];
    // 公司首次出现时初始化分组结构
    if(!companyGroups[companyName]){
      companyGroups[companyName] = {
        receiveEmail: row[12],
        contractList: []
      }
    }
    // 把当前行的租约信息存入对应公司的分组
    companyGroups[companyName].contractList.push({
      assigneeName: row[1],
      endDate: row[7]
    })
  })

  // 遍历每个公司分组发信
  Object.keys(companyGroups).forEach(company => {
    const group = companyGroups[company];
    // 把同一公司的多条租约信息拼接成列表,纯文本用\n换行,HTML模板可以换成<br/>或<li>标签
    let assigneeStr = "";
    let dateStr = "";
    group.contractList.forEach((item, index) => {
      const split = index === group.contractList.length -1 ? "" : "\n";
      assigneeStr += item.assigneeName + split;
      dateStr += item.endDate + split;
    })
    // 替换模板变量
    var messageBody = templateText.replace("{ClientNames}",company)
                      .replace("{AssigneeNames}",assigneeStr)
                      .replace("{HouseleaseEndDates}",dateStr);
    // 发信
    MailApp.sendEmail(
      group.receiveEmail,          // 对应公司的收件邮箱
      company + "- House lease contract expire", // 主题
      messageBody
    );
  })
}

注意:如果你的邮件模板是HTML格式,可以把拼接时的换行符\n替换为<br>或者有序/无序列表标签,排版效果会更好。

内容的提问来源于stack exchange,提问作者Tuong Vy Tran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:06:00