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

Google App Script开发需求:遍历列并发送当日日期对应行信息邮件

Google App Script 实现当日日期匹配邮件发送

以下是实现需求的完整代码,附带关键细节说明:

function sendDailyGreetings() {
  // 替换为你的表格ID(可从表格URL中获取)
  const spreadsheetId = "你的表格ID";
  // 替换为目标工作表名称
  const sheetName = "Sheet1";
  // 替换为收件人邮箱
  const recipientEmail = "xxx@example.com";

  // 获取工作表数据
  const sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
  const data = sheet.getDataRange().getValues();
  
  // 处理当日日期:去除时分秒,只保留日期部分
  const today = new Date();
  today.setHours(0, 0, 0, 0);
  const todayTimestamp = today.getTime();

  // 跳过表头,遍历数据行
  for (let i = 1; i < data.length; i++) {
    const row = data[i];
    const rowDate = new Date(row[0]); // Date列在第1列(索引0)
    // 处理该行日期,去除时分秒
    rowDate.setHours(0, 0, 0, 0);
    const rowDateTimestamp = rowDate.getTime();

    // 比较日期是否匹配
    if (rowDateTimestamp === todayTimestamp) {
      const greeting = row[1]; // Greeting列在第2列(索引1)
      const message = row[2]; // Message列在第3列(索引2)
      
      // 发送邮件
      MailApp.sendEmail({
        to: recipientEmail,
        subject: "今日问候",
        body: `${greeting}\n\n${message}`
      });
    }
  }
}

关键注意事项:

  • 表格ID获取:打开你的Google表格,URL中d/和/edit之间的字符串就是表格ID。
  • 日期比较逻辑:直接比较Date对象可能因为时分秒差异导致匹配失败,所以统一将日期转为去除时分秒的时间戳再比较,确保仅匹配日期部分。
  • 列索引对应:代码中假设Date是第1列(索引0)、Greeting是第2列(索引1)、Message是第3列(索引2),如果你的表格列顺序不同,需要调整对应的索引值。
  • 权限设置:首次运行脚本时,会提示授权,按照指引完成授权即可。
  • 定时触发(可选):如果需要每天自动执行,可在App Script编辑器的「编辑」→「当前项目的触发器」中添加时间驱动触发器,设置为每天固定时间运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:12:36