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

如何使用Google Script读取谷歌表格多列数据发送邮件提醒

解决方案

你只需要调整3处代码即可实现同时读取A、D两列内容并插入邮件,修改后的完整代码如下:

function sendEmails() 
{
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 1; // 第一行要处理的数据行
  var numRows = 300; // 要处理的总行数
  // 选中A1:P300的单元格范围
  var dataRange = sheet.getRange(startRow, 1, numRows, 16);
  // 获取范围内所有单元格的值
  var data = dataRange.getValues();
  var dayofemail = data[0][15];
  // 改动1:解构时新增D列(对应索引3)的取值变量equipDesc
  data.reduce((m, [qua_num, _, _, equipDesc,,,,,,,daysPastCal,emailAddress]) => {
  if (daysPastCal > -14) {
    // 改动2:存入Map的内容改为同时包含A列和D列的拼接内容
    const item = `${qua_num}(${equipDesc})`
    m.set(emailAddress, m.has(emailAddress) ? [...m.get(emailAddress), item] : [item]);
  }
  return m;
}, new Map())
.forEach((itemList, emailAddress) => {
  // 改动3:拼接邮件内容时直接使用已经包含两列信息的列表
  var message = itemList.join("\n") + '\n以上设备即将到期或已超出校准有效期,请联系QA确认更换或送外重新校准。';
  var subject = '自动提醒:设备校准检查 ';
  MailApp.sendEmail(emailAddress, subject + dayofemail, message);
});
}

改动说明

  • 谷歌表格的列在getValues()返回的二维数组中索引从0开始计数,A列对应索引0,D列对应索引3,所以在数组解构时新增了D列的取值变量equipDesc
  • 原来的Map中只存了A列的编号,现在改为将A列和D列的内容拼接后存入,你也可以根据自己的需求调整拼接格式,比如用换行、分隔符等
  • 如果你需要把两列内容分开排版,也可以直接存二维数组,拼接邮件时分别调用即可,示例如下:
// reduce部分修改为
m.set(emailAddress, m.has(emailAddress) ? [...m.get(emailAddress), [qua_num, equipDesc]] : [[qua_num, equipDesc]])
// 拼接邮件部分修改为
var message = itemList.map(item => `设备编号:${item[0]},设备信息:${item[1]}`).join("\n") + 邮件后缀内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:27:00