Google Apps Script优化需求:将零销售额单条邮件改为每日汇总发送
解决方案:汇总零销售额商家并每日发送单封邮件
第一步:修正脚本逻辑与代码
原脚本有两个核心问题:一是条件判断误用赋值符号=而非判断相等的===,二是逐个发送邮件而非汇总后统一推送。以下是修改后的完整代码:
function sendZeroSalesSummary() { // 获取表格目标工作表 const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName('Sheet1'); // 读取A2到最后一行的所有数据 const data = sh.getRange('A2:B' + sh.getLastRow()).getValues(); // 收集所有零销售额的商家名称 const zeroSalesMerchants = []; data.forEach(row => { const salesValue = row[1]; // 严格判断销售额是否为0(注意用===而非=) if (salesValue === 0) { zeroSalesMerchants.push(row[0]); } }); // 仅当存在零销售额商家时发送邮件 if (zeroSalesMerchants.length > 0) { // 配置收件人(多个邮箱用逗号分隔) const recipients = 'email1@example.com, email2@example.com'; const subject = '每日零销售额商家汇总'; // 生成汇总消息 const message = `以下商家今日销售额为0:\n${zeroSalesMerchants.join('\n')}`; // 发送汇总邮件 MailApp.sendEmail(recipients, subject, message); } }
第二步:设置每日自动触发
- 打开谷歌表格的脚本编辑器(路径:工具>脚本编辑器)
- 点击左侧菜单栏的「触发器」图标(时钟样式)
- 点击「添加触发器」按钮,按以下配置:
- 要运行的函数:选择
sendZeroSalesSummary - 事件源:选择「时间驱动」
- 触发器类型:选择「日计时器」
- 一天中的时间:选表格更新完成后的合适时段
- 要运行的函数:选择
- 点击「保存」,按提示完成授权即可
内容的提问来源于stack exchange,提问作者Shaalan
相关产品推荐
相关产品推荐

