Авто-почта на основе срока выполнения -_Помощь почты с помощью скрипта Google - PullRequest
1 голос
/ 16 апреля 2020

Снимок электронной таблицы Google

 function emailReminder() {
  
    //For testing purposes
    //You can view the log by typing CTRL+E after you run the script. 
  Logger.log(msg);
  
  // grab the Google Sheet object
  var googleSheets = SpreadsheetApp.getActiveSpreadsheet();
  // activates the first sheet
  SpreadsheetApp.setActiveSheet(googleSheets.getSheets()[0]);
  // grabs the sheet
  var currentSheet = googleSheets.getActiveSheet();
  
  // find the last row
  var lastRow = currentSheet.getLastRow();
 
  // The first row starts at row 2 to account for headers
  var startRow = 2;
 
  // get E column data
  var range = currentSheet.getRange(2,5,lastRow-startRow+1,1 );
  var numRows = range.getNumRows();
  var remainingDays = range.getValues();
  
  // get A column data
  range = currentSheet.getRange(2, 1, lastRow-startRow+1, 1);
  var columnA = range.getValues();
  
  // get D column data
  range = currentSheet.getRange(2, 4, lastRow-startRow+1, 1);
  var columnD = range.getValues();
  
  var count = 0;
  var msg = "";
  
  // Loop column E
  for (var i = 0; i <= numRows - 1; i++) {
    var daysLeft = remainingDays[i][0];
    if(daysLeft < 1) {
      // Checks to see if a cell value in column E less than 1
      var reminder = columnA[i][0];
      **var reminderdate = columnD[i][0];**
             
      msg = msg + "* Don't Forget: "+reminder+" is due on **"+reminderdate+"** which is "+daysLeft+" days.\n";
      count++;
    }
  }
  
   // Loop column E
  for (var i = 0; i <= numRows - 1; i++) {
    var daysLeft = remainingDays[i][0];
    if(daysLeft == 1) {
      // Checks to see if a cell value in column E equals 1
      var reminder = columnA[i][0];
       
      msg = msg + "Don't Forget: "+reminder+" is due tomorrow.\n";
      count++;
    }
  }
  // For multiple email addresses, use a comma to separate each email.
  if(count) {
    MailApp.sendEmail("yyy@gmai.com", 
        "Article Reminder", msg);
  }
   
}

Вывод приходит по электронной почте как

Don't Forget:1231 is due onSun Feb 09 2020 00:00:00 GMT+0530 (India Standard Time) which is -67 days.

Я хочу только

Don't Forget:1231 is due on Sun Feb 09 2020 which is -67 days

отражаться в выходных данных при отправке письма.

Кроме того, детали могут быть в табличном формате, чего не происходит на момент отправки письма (необходимо написать код для того же самого)

1 Ответ

1 голос
/ 16 апреля 2020

Вы можете отформатировать дату, полученную из листа, чтобы она использовала только dd-MM-гггг . Для этого используйте метод Date () и один из скриптов приложений Utitilies.formatDate .

Например:

  var newDate = new Date(columnD[i][0]);
  var reminder = Utilities.formatDate(newDate, "IST", "dd-MM-yyyy");

Тогда reminder будет иметь формат, подобный 11-Jan-2020.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...