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

Google Sheets批量发邮件脚本问题:无法访问getDataRange二维数组

解决Google Sheets批量发送对应邮件的问题

你的代码核心问题有两个:

  • getDataRange()返回的是Range对象,不是直接可访问的二维数组,必须调用getValues()方法才能提取出单元格数据的二维数组
  • 数组索引从0开始,你之前的列索引对应逻辑错误,第一列邮箱应该对应索引0

下面是修正后的代码:

function sendEmail() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheetByName("Email");
  // 关键:调用getValues()把Range对象转成可直接访问的二维数组
  var data = sh.getDataRange().getValues();
  
  // 从i=1开始循环(跳过第一行表头),如果你的表格没有表头,就改成i=0
  for(var i = 1; i < data.length; i++){
    var emailAddress = data[i][0]; // 第一列(收件邮箱)对应数组索引0
    var subject = data[i][1];      // 第二列(邮件主题)对应数组索引1
    var body = data[i][2];         // 第三列(邮件正文)对应数组索引2
    
    // 可选:增加空邮箱判断,避免发送出错
    if(emailAddress){
      MailApp.sendEmail(emailAddress, subject, body);
    }
  }
}

额外提示

  • 首次运行会触发权限申请,按照页面提示完成授权即可
  • Google普通账号每日邮件发送上限为100封,G Suite/Workspace账号上限更高
  • 测试阶段建议只用1-2个测试邮箱,避免误发大量邮件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:18:18