如何在Gmail通知中加链接并在Sheets脚本中设置任意触发值?
优化后的Google Apps Script 实现第二列编辑触发邮件通知
以下是满足你需求的修改后脚本:
function sendMailEdit(e) { // 仅当第二列被编辑时执行后续逻辑 if (e.range.columnStart !== 2) return; const activeSheet = e.source.getActiveSheet(); // 获取当前编辑行的1-8列数据 const rData = activeSheet.getRange(e.range.rowStart, 1, 1, 8).getValues()[0]; const id = rData[4]; const pro = rData[5]; const tra = rData[6]; const amo = rData[7]; // 获取当前表格的链接 const sheetUrl = e.source.getUrl(); // 用模板字符串实现邮件内容分行,更易读 const msg = `A new rollover request has been updated in the US - Sales spreadsheet: - Account ID: ${id} - Provider account: ${pro} - Transfer from: ${tra} - Transfer Amount: $${amo} 查看表格链接: ${sheetUrl}`; GmailApp.sendEmail("example@gmail.com", "New Rollover Request Updated", msg); }
关键修改说明:
触发条件调整:
移除了原脚本中对e.value !== "SALES"的判断,仅保留e.range.columnStart !== 2的校验——只要第二列(B列)被编辑就会触发邮件通知,不再限制编辑内容。添加表格链接:
通过e.source.getUrl()获取当前电子表格的完整链接,并将其插入到邮件内容末尾,方便收件人直接跳转查看。邮件内容分行格式化:
使用ES6模板字符串(反引号`包裹)替代原有的字符串拼接,通过换行和列表符号-让邮件内容结构更清晰,避免单句堆砌;同时调整了邮件主题,更准确反映是“更新”操作(因为现在只要编辑就触发,不一定是新增)。
另外,原脚本中定义的ss变量(获取RO工作表)未被使用,已直接移除冗余代码,让脚本更简洁。
内容的提问来源于stack exchange,提问作者kevin20996
相关产品推荐
相关产品推荐

