修改Google Apps Script:E列存在空单元格时仅发送一封提醒邮件
解决Google Apps Script重复发送邮件问题
原代码会为每个空单元格单独发送邮件,修改后只需检测到存在空单元格就发送一封提醒邮件:
function sendSupervisorEmail(e) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Form Responses 1"); var data = sheet.getDataRange().getValues(); // 标记是否存在空单元格 var hasEmptyCells = false; // 遍历数据,仅检测空单元格,不发送邮件 for(var i = 1; i < data.length; i++) { if(data[i][4] === "") { hasEmptyCells = true; // 找到一个空单元格后可提前终止循环,提升效率 break; } } // 仅当存在空单元格时发送一封邮件 if(hasEmptyCells) { var msg = "存在待审批的休假申请。\n点击以下链接进行审批:\n>>>>URL<<<<"; MailApp.sendEmail(">>>>EMAIL<<<<", "待审批提醒 - 休假申请", msg, {noReply: true}); } }
修改要点:
- 添加
hasEmptyCells布尔变量,用于标记E列是否存在空单元格 - 循环仅负责检测空单元格,找到后可立即终止循环(可选,提升运行效率)
- 将邮件发送逻辑移到循环外,仅在确认存在空单元格时发送一次邮件
- 优化邮件内容的换行格式,使用
\n保证邮件内换行正常显示
内容的提问来源于stack exchange,提问作者Brian Reim
相关产品推荐
相关产品推荐

