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

Google Apps Script中data.forEach函数括号与冒号语法错误求助

错误原因与修正方案

核心错误点:

  • 语法结构错误:forEach的回调函数写法错误,多写了一个括号,且未用大括号{}包裹函数体,正确的回调函数格式应为function(row) { ... }。
  • 变量作用域问题:emailTemp定义在myFunction函数内部,函数外部的forEach代码无法访问该变量;同时ws、data的定义放在了函数外部,在Google Apps Script中这类操作应放在函数内部执行。
  • 变量拼写不一致:定义的变量是AffilliateID(两个l),但后续引用时写成了AffiliateID(一个l),会导致引用未定义变量的错误。
  • 代码闭合不完整:forEach的回调函数缺少闭合的},同时forEach方法本身也缺少闭合的)。

修正后的完整代码:

function myFunction() {
  var Name = 1;
  var Surname = 2;
  // 统一变量拼写,避免引用错误
  var AffiliateID = 24;

  var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Affiliate Responses");
  // 修正范围获取方式:getDataRange无需参数,指定范围用getRange
  var data = ws.getRange("A4:Y" + ws.getLastRow()).getDisplayValues();  

  var emailTemp = HtmlService.createHtmlOutputFromFile("Affiliate email");
  
  data.forEach(function(row) {
    emailTemp.Name = row[Name];
    emailTemp.Surname = row[Surname];
    emailTemp.AffiliateID = row[AffiliateID];
    // 可在此添加邮件发送等后续逻辑,比如MailApp.sendEmail(...)
  });
}

额外说明:

  1. getDataRange()方法无需传入参数,它会返回工作表的全部已用数据范围;若要指定A4:Y这类自定义范围,需使用getRange()方法。
  2. 确保你的Affiliate email模板文件存在,且模板内的对应变量能正确接收赋值。
  3. 变量名建议遵循小驼峰命名法(如affiliateId),既避免与内置对象/属性重名,也更符合JavaScript编码规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:24:11