Google Sheets按条件触发邮件脚本发送空白邮件问题求助
问题原因
你的代码有三处核心错误导致邮件内容为空:
getValues()方法返回的是二维数组,直接比较values[i]和value1s[i]实际是在对比数组对象,而非单元格内的数值,需要取二维数组第一层的第一个元素才能拿到对应单元格的实际值。- 数组的
concat()方法不会修改原数组,只会返回拼接后的新数组,你写的results.concat(value5)没有对原结果数组做任何修改,因此results始终是空数组。 - 发送邮件时直接传入数组作为内容,会出现格式异常,需要先转换为字符串格式。
修复后代码
function Mailer1() { // 此处引号内填写你的Google Sheets表格ID var ss = SpreadsheetApp.openById(""); var sheet = ss.getSheetByName("Today"); var values = sheet.getRange("AD2:AD").getValues(); var value1s = sheet.getRange("AE2:AE").getValues(); var results = []; for(var i=0;i<values.length;i++) { // 取二维数组内的实际数值做对比 if(values[i][0] > value1s[i][0]) { var value5 = sheet.getRange(i+2,1).getValue(); // 用push方法往结果数组添加内容 results.push(value5); } } // 把结果数组拼接为带换行的字符串再作为邮件内容发送,无匹配结果时也会返回提示内容避免空白邮件 var mailContent = results.length > 0 ? results.join('\n') : "今日无需要补货的商品"; MailApp.sendEmail('vinay_narayanan@playshifu.com','Restock Needed At:',mailContent); }
内容的提问来源于stack exchange,提问作者Vinay
相关产品推荐
相关产品推荐

