Google Sheets复选框触发邮件:含对应工作表CSV文件实现方案
Google Sheets 复选框触发邮件通知脚本(附CSV附件)
一、直接可用的脚本代码
复制以下代码到Apps Script编辑器,修改标记为// 需要修改的部分即可:
// -------------------------- 需要修改的配置项 -------------------------- const RECIPIENT_EMAIL = 'your-email@example.com'; // 替换成实际收件人邮箱 const EMAIL_SUBJECT_PREFIX = '新订单通知:'; // 自定义邮件主题前缀 const SUMMARY_SHEET_NAME = '汇总表'; // 替换成你的汇总工作表名称(不需要触发通知的表) // ------------------------------------------------------------------- function onCheckboxChange(e) { // 只处理复选框被勾选为TRUE的操作 if (!e.value || e.value !== 'TRUE') return; const activeSheet = e.source.getActiveSheet(); // 跳过汇总工作表,避免误触发 if (activeSheet.getName() === SUMMARY_SHEET_NAME) return; // 将当前工作表转换为CSV格式 const csvContent = sheetToCSV(activeSheet); const csvBlob = Utilities.newBlob(csvContent, 'text/csv', `${activeSheet.getName()}.csv`); // 发送带附件的通知邮件 MailApp.sendEmail({ to: RECIPIENT_EMAIL, subject: `${EMAIL_SUBJECT_PREFIX}${activeSheet.getName()}`, body: `工作表「${activeSheet.getName()}」中有订单被标记确认,附件为该表的CSV文件。`, attachments: [csvBlob] }); } // 辅助函数:将工作表数据转为CSV格式 function sheetToCSV(sheet) { const data = sheet.getDataRange().getValues(); // 处理单元格中的双引号,避免CSV格式错误 return data.map(row => row.map(cell => `"${cell.toString().replace(/"/g, '""')}"`).join(',') ).join('\n'); }
二、脚本设置步骤
- 打开你的Google Sheets工作簿
- 点击顶部菜单栏「扩展程序」>「Apps Script」,进入脚本编辑器
- 删除编辑器里默认的
function myFunction()代码,粘贴上面的脚本 - 修改脚本中「需要修改的配置项」部分的内容
- 点击编辑器顶部的保存按钮,给脚本起个名字(比如「订单通知脚本」)
- 设置自动触发规则:
- 点击左侧菜单栏的时钟图标(「触发器」)
- 点击「添加触发器」,按以下配置设置:
- 选择要运行的函数:
onCheckboxChange - 选择部署类型:「从电子表格」
- 选择事件类型:「编辑」
- 点击「保存」,按提示完成授权(Google会提示脚本未验证,点击「高级」>「转到XX脚本(不安全)」即可继续)
- 选择要运行的函数:
三、注意事项
- 授权时需要允许脚本访问你的邮箱和工作表数据,这是发送邮件和读取表格的必要权限
- 如果不需要跳过汇总工作表,删除或注释掉
if (activeSheet.getName() === SUMMARY_SHEET_NAME) return;这一行 - Google普通账号的邮件发送有每日限额(约100封),日常订单通知足够使用
内容的提问来源于stack exchange,提问作者eknauer
相关产品推荐
相关产品推荐

