我仍然在这里学习绳索。根据其他贡献者建议的代码,我编写了一个脚本,用于向使用 Google 表单记录时间条目的顾问发送提醒电子邮件。电子表格首先导入日历条目,其中包含每个顾问的所有工作信息。导入日历条目后,如果顾问尚未记录他们的时间条目,以下脚本将向他们发送一封电子邮件,提醒他们这样做:
function sendReminder() {
var rmndrFrom = "XYZ, Inc.";
var myemail = "support@xyz.com";
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Pending");
var numRows = sheet.getLastRow();
var lastCol = sheet.getLastColumn();
var dataRange = sheet.getRange(2, 1, numRows, lastCol); // row 1 is the header row
var sheetData = dataRange.getValues();
for (var i = 0; i < sheetData.length; ++i) {
var row = sheetData[i];
if (row[0]){
var jobNumb = row[0]; // Job Number
var conName = row[2]; // Consultant Name
var conMail = row[3]; // Consultant Email
var jobDate = row[4]; // Date
// format email string
var subject = "Time Entry Reminder: " + conName + " / Job " + jobNumb;
try {
var conMsgH = 'This is a reminder for you to record your time entry for Job #<strong>' + jobNum + '/' + jobDate + '</strong>';
// strip HTML for plain text message
var conMsgP = conMsgH.replace(/\<br\/\>/gi, '\n').replace(/(<([^>]+)>)/ig, "");
// send reminder to consultants
MailApp.sendEmail(conMail, subject, conMsgP, { htmlBody:conMsgH, name:rmndrFrom });
} catch (e) { // error handler
MailApp.sendEmail(myemail, "Error in sending reminder email.", e.message);
}
}
}
}
所以基本上,这个脚本会解析待处理的工作表,如果 A 列有一个工作编号,它会向顾问发送一封提醒电子邮件,其中包含该工作编号。但是,单个顾问的名字可能有多个职位编号。我希望脚本向每位顾问发送一封电子邮件,其中包含他们必须记录其时间条目的工作编号列表。
提前感谢您的帮助。任何关于如何优化代码的建议也将不胜感激。