提前道歉 - 我不是程序员。只是想为我的生意拼凑一些东西。目前,我有一个引用电子表格的脚本,并向我的接待员发送一封自动发送的电子邮件。这个脚本提供了我喜欢的所有信息,但问题是它为每个条目发送一个单独的电子邮件。理想情况下,我想向我的接待员发送一封电子邮件,其中包含即将到来的一天所有约会的列表。
如果有人能帮助我,我将不胜感激!
这是我到目前为止所拥有的:
function receptionist() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 2; // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, numRows, 8)
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[2];
var timeslot = sheet.getRange(i+2,7,1,1).getValues();
var name = sheet.getRange(i+2,2,1,1).getValues();
var date = Utilities.formatDate(new Date(sheet.getRange(i+2,6,1,1).getValue()),"EST", "E MMM dd, yyyy");
var receptionist= name+" scheduled on "+date+" at "+timeslot;
var subject = "Appt. List";
var emailAddress = "receptionist@example.com";
MailApp.sendEmail({emailAddress, subject, receptionist});
提前致谢!
答案 0 :(得分:0)
我已经测试了这段代码,它可以运行:
function receptionist() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 2; // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, numRows, 8)
var data = dataRange.getValues();
var receptionist = "Today's Appointments \r\r";
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[2];
var timeslot = sheet.getRange(i+2,7,1,1).getValue();
var name = sheet.getRange(i+2,2,1,1).getValue();
var dateData = sheet.getRange(i+2,6,1,1).getValue();
var dayOfAppointment = dateData.getFullYear() + dateData.getMonth() + dateData.getDate();
var todaysDate = new Date();
var todaysDayNumber = todaysDate.getFullYear() + todaysDate.getMonth() + todaysDate.getDate();
if (todaysDayNumber === dayOfAppointment) {
var date = Utilities.formatDate(new Date(),"EST", "E MMM dd, yyyy");
var thisAppointment = name+" scheduled on "+date+" at "+timeslot + "\r";
receptionist+=thisAppointment;
};
};
var subject = "Appt. List";
var emailAddress = "receptionist@example.com";
MailApp.sendEmail(emailAddress, subject, receptionist);
};
您确实需要for
循环。我从.sendEmail()
参数中删除了花括号。注意&#34; \ r&#34;将每行换行到新行的值。这一行:
receptionist+=thisAppointment;
在每次迭代时使receptionist
变量更长一个约会行。我没有通过每行代码来确定代码是否最佳。您需要的基础知识就在那里。它可以工作&#34;原样&#34;。