【发布时间】:2025-12-20 10:50:14
【问题描述】:
我是编码新手,我想为从开始日期到结束日期每 20 天的电子邮件剩余部分编写一个谷歌应用脚本代码。
function emailAlert() {
var sheet = SpreadsheetApp.getActiveSheet();
lastRow = sheet.getLastRow();
lastCol = sheet.getLastColumn();
var dataRange = sheet.getRange( 2, 1, lastRow-1, lastCol);
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var date = new Date(row[3]); // make the sheet value a date object
//Logger.log('original value = '+date);
//Logger.log('method 1 : '+new Date(date.getTime()+5*3600000*24));
twentyDaysFromStartDate = new Date(date.setDate(date.getDate()+20));
var formattedtwentyDaysFromStartDate = Utilities.formatDate(new Date(twentyDaysFromStartDate), "ET", "dd/MM/yyyy");
Logger.log (formattedtwentyDaysFromStartDate);
var expireDateFormat = Utilities.formatDate(
new Date(row[4]),
'ET',
'dd/MM/yyy'
);
Logger.log (expireDateFormat);
var subject = '';
var message =
' Controllare documenti Progetto Formativo ' +
'\n' +
' CODICE FISCALE: ' +
row[0] +
'\n' +
' NOME: ' +
row[1] +
'\n' +
' COGNOME: ' +
row[2] +
'\n' +
' DATA INIZIO: ' +
row[3] +
'\n' +
' DATA FINE: ' +
expireDateFormat;
var today = Utilities.formatDate(
new Date(),
'ET',
'dd/MM/yyyy',
);
Logger.log(today);
if(formattedtwentyDaysFromStartDate!== expireDateFormat)
{
if(formattedtwentyDaysFromStartDate === today)
{
var subject =
'Progetto formativo' +
row[0] +
' - ' +
expireDateFormat;
MailApp.sendEmail('mail@gmail.com', subject, message);
}
}
}
}
此代码适用于自开始日期起每 20 天的电子邮件剩余部分。但它甚至会在过期日期之后发送电子邮件剩余部分。请有人帮我解决这个问题?
【问题讨论】:
标签: email google-apps-script google-sheets