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

Google App Script需求:表格为空时禁止发送邮件

解决空表格时不发送邮件的问题

核心思路

在发送邮件前添加判断逻辑,确认表格包含有效内容,只有满足条件时才执行邮件发送操作。

修改后的完整脚本

function sendmail() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email2");
  
  // 检查指定工作表是否存在
  if (!sheet) {
    console.log("工作表Email2不存在");
    return;
  }

  var bodyEmail = "Email body";
  var totalRows = sheet.getLastRow();
  var totalCols = sheet.getLastColumn();

  // 判断表格是否为空:完全无内容,或仅有的一行表头全为空
  var isEmpty = false;
  if (totalRows === 0) {
    isEmpty = true;
  } else if (totalRows === 1) {
    var headerValues = sheet.getRange(1, 1, 1, totalCols).getDisplayValues()[0];
    isEmpty = headerValues.every(val => val.trim() === "");
  }

  // 表格为空则终止脚本
  if (isEmpty) {
    console.log("表格为空,不发送邮件");
    return;
  }

  // 生成HTML表格内容
  var table = "<html><body><br><table border=1>";
  var colVal = "";

  for (var rowNo = 1; rowNo <= totalRows; rowNo++) {
    table += "<tr>";
    for (var colNo = 1; colNo <= totalCols; colNo++) {
      colVal = sheet.getRange(rowNo, colNo).getDisplayValue();
      table += rowNo === 1 ? `<th>${colVal}</th>` : `<td>${colVal}</td>`;
    }
    table += "</tr>";
  }
  table += "</table></body></html>"; // 补充HTML闭合标签,修复原脚本的显示问题

  bodyEmail += table;

  // 处理邮件标题和收件人
  const currentMonth = Utilities.formatDate(new Date(), "GMT+4", "MMMM ");
  var year = new Date().getFullYear();
  var emails = ["email@gmail.com","email2@gmail.com"];

  // 批量发送邮件
  emails.forEach(email => {
    GmailApp.sendEmail(email, `Title of email ${currentMonth}${year}`, "", {htmlBody: bodyEmail});
  });
}

关键修改说明

  1. 工作表存在性校验:避免因工作表名称错误导致脚本报错终止。
  2. 空表格判断逻辑:
    • 当表格无任何行(totalRows === 0)时,直接判定为空;
    • 当表格只有一行时,检查该行所有单元格是否为空,排除无效表头的情况;
      满足任一条件则跳过邮件发送。
  3. HTML结构修复:补充原脚本缺失的</table></body></html>标签,避免邮件显示异常。
  4. 代码细节优化:修正原脚本中“emial”的拼写错误,改用forEach简化收件人循环,提升代码可读性。

自定义逻辑调整

如果你的需求是「只要有表头(哪怕无数据行)就发送邮件」,只需将空判断逻辑简化为:

if (totalRows === 0) {
  console.log("表格为空,不发送邮件");
  return;
}

内容的提问来源于stack exchange,提问作者RyuukuS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 07:43:22