You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 18:09:22