Google Sheets勾选复选框后向选中邮箱发送表格数据实现方法
Google Sheets 勾选复选框自动发送指定列数据到目标邮箱实现方案
前置检查
- 确认Sheet1工作表E2单元格已完成邮箱下拉选项的数据验证配置,F2单元格已插入复选框控件,勾选状态返回值为
TRUE - 确认A、B、C三列从A1表头开始存储业务数据,无需要跳过的无效空行
操作步骤
1. 进入脚本编辑页
打开目标表格,点击顶部菜单栏「扩展程序」-「Apps 脚本」,清空编辑器内默认生成的空函数代码。
2. 写入功能代码
将以下代码完整粘贴到编辑器中:
function sendDataOnCheck(e) { const activeSheet = e.source.getSheetByName('Sheet1'); const editRange = e.range; // 非F2单元格的编辑直接跳过,不触发逻辑 if (editRange.getA1Notation() !== 'F2') return; const checkStatus = e.value; const targetMail = activeSheet.getRange('E2').getValue().trim(); // 校验触发条件:F2被勾选为TRUE、E2填入合法邮箱格式 const mailReg = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (checkStatus !== 'TRUE' || !targetMail || !mailReg.test(targetMail)) return; // 提取A:C列全量数据,过滤整行空值的无效条目 const rawData = activeSheet.getRange('A:C').getValues(); const validData = rawData.filter(row => row.some(cell => cell.toString().trim() !== '')); if (validData.length === 0) { SpreadsheetApp.getUi().alert('A-C列无有效数据,发送终止'); activeSheet.getRange('F2').setValue(false); return; } // 组装HTML格式的表格邮件内容,兼容单条/多条数据展示 let mailContent = '<table border="1" cellpadding="8" cellspacing="0" style="border-collapse:collapse;">'; validData.forEach((row, rowIdx) => { mailContent += '<tr>'; row.forEach(cellVal => { if (rowIdx === 0) { // 首行作为表头加灰底加粗 mailContent += `<th style="background:#f2f2f0;font-weight:bold">${cellVal}</th>`; } else { mailContent += `<td>${cellVal}</td>`; } }); mailContent += '</tr>'; }); mailContent += '</table>'; // 执行发件 MailApp.sendEmail({ to: targetMail, subject: `业务数据导出_${new Date().toLocaleString('zh-CN')}`, htmlBody: `<p>以下为勾选时刻导出的Sheet1表A-C列全量有效数据:</p>${mailContent}` // 如需附带CSV格式附件,取消下面一行的注释即可 // ,attachments: [Utilities.newBlob(validData.map(r => r.join(',')).join('\n'), 'text/csv', `数据导出_${Date.now()}.csv`)] }); // 发送完成后自动重置复选框为未勾选状态,方便下次触发 activeSheet.getRange('F2').setValue(false); SpreadsheetApp.getUi().alert(`数据已成功发送至${targetMail}`); }
粘贴完成后按快捷键Ctrl+S保存,给脚本项目自定义一个名称即可。
3. 配置触发规则
- 点击脚本编辑器左侧栏的时钟样式「触发器」按钮,选择「添加触发器」
- 按以下参数配置触发器:
- 运行的函数:选择
sendDataOnCheck - 部署版本:选择
Head - 事件来源:选择
来自电子表格 - 事件类型:选择
编辑时
- 运行的函数:选择
- 点击保存后,按照弹窗引导完成谷歌账号授权。如果弹出「应用未验证」提示,点击「高级」-「转到对应项目」即可继续完成授权,属于个人脚本的正常提示,无安全风险。
注意事项
- 该触发器仅响应拥有表格编辑权限的用户手动修改单元格的操作,公式自动更新、脚本批量修改单元格不会触发发件逻辑
- 发件权限受谷歌账号配额限制,普通个人账号每日可发送100封邮件,足够常规业务场景使用
- 如果需要调整邮件样式、增加收件人、修改导出列范围,直接修改代码对应位置的参数即可
- 发件完成后F2复选框会自动重置为未勾选状态,无需手动操作。
内容的提问来源于stack exchange,提问作者Asif Sheikh
相关产品推荐
相关产品推荐

