基于Google Sheet与AppScript实现员工评审提前两周邮件提醒
实现员工评审日期前两周的邮件提醒(Google Apps Script)
1. 打开脚本编辑器
- 打开你的Google表格,点击顶部菜单栏的「扩展程序」→「Apps 脚本」,进入脚本编辑器。
2. 粘贴并修改代码
将下方代码粘贴到编辑器中,记得把your-email@example.com替换成你自己的邮箱地址:
function checkReviewDatesAndSendReminders() { // 获取当前活跃表格 const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 读取所有数据(跳过第1行表头) const data = sheet.getDataRange().getValues().slice(1); // 格式化当前日期,去除时间部分避免干扰判断 const today = new Date(); today.setHours(0, 0, 0, 0); // 计算两周后的目标日期 const twoWeeksLater = new Date(today); twoWeeksLater.setDate(today.getDate() + 14); twoWeeksLater.setHours(0, 0, 0, 0); // 替换为你的接收邮箱 const myEmail = "your-email@example.com"; let reminderList = ""; // 逐行检查员工评审日期 data.forEach(row => { const employeeName = row[0]; // A列对应员工姓名 const reviewDate = row[5]; // F列对应评审日期 // 跳过无日期或格式错误的行 if (!reviewDate || !(reviewDate instanceof Date)) return; // 格式化评审日期,统一去掉时间 const formattedReviewDate = new Date(reviewDate); formattedReviewDate.setHours(0, 0, 0, 0); // 判断是否是两周后需要提醒的日期 if (formattedReviewDate.getTime() === twoWeeksLater.getTime()) { reminderList += `- ${employeeName} 的评审即将在两周后到来\n`; } }); // 有需要提醒的内容时发送邮件 if (reminderList) { const emailSubject = "员工评审日期提醒"; const emailBody = `以下员工的评审将在两周后进行,请留意:\n\n${reminderList}`; MailApp.sendEmail(myEmail, emailSubject, emailBody); } }
代码关键点说明
slice(1):跳过表格第1行的表头数据,如果你没有表头,可以删掉这部分直接用sheet.getDataRange().getValues()- 日期格式化:统一将所有日期的时间设为0点,避免因具体时间不同导致判断失误
- 空值过滤:自动跳过F列没有填写日期的行,防止脚本报错
3. 设置定时触发器
- 在脚本编辑器左侧点击「触发器」图标(时钟样式)
- 点击右下角「添加触发器」,按以下配置:
- 运行函数:选择
checkReviewDatesAndSendReminders - 事件源:选择「时间驱动」
- 触发器类型:选择「每天」
- 时间区间:选一个你希望每天检查的时间段,比如「上午9点到10点」
- 运行函数:选择
- 保存后按照提示完成授权(首次运行需要授权脚本访问你的邮箱和表格,属于正常操作)
测试与调整
- 可以手动点击脚本编辑器的「运行」按钮,测试脚本是否能正常发送提醒邮件
- 如果需要调整提醒提前的天数,把代码中的
14改成你想要的数字即可(比如提前7天就改成7) - 确保F列的日期是Google表格能识别的日期格式(不是纯文本),否则脚本无法正确读取日期
内容的提问来源于stack exchange,提问作者adavoodi
相关产品推荐
相关产品推荐

