Как мне отредактировать цикл в коде, чтобы отправить одно письмо со всеми данными? - PullRequest
1 голос
/ 23 октября 2019

Мой код проверяет строки в Google Sheet с сегодняшней датой в определенном столбце. Некоторые клетки на этих линиях затем по электронной почте. Моя цель состояла в том, чтобы ежедневно получать все строки, которые соответствуют этим критериям, по одному электронному письму.

То есть, если у меня есть 3 строки, которые соответствуют критериям, я получаю 3 электронных письма. Первое электронное письмо содержит одну запись, второе - 2 записи, а третье - все 3 записи.

Я уверен, что это легко исправить, но я не уверен, как редактировать цикл.

  var datasheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1"); 
  var numRows = datasheet.getLastRow()-1
  var data = datasheet.getRange(2, 1, numRows, datasheet.getLastColumn()).getValues();
  var today = new Date().toLocaleDateString()
  var result = "";
  for (var i = 0; i < data.length; i++) { 
    var row = data[i];
    var enddate = new Date(row[14]).toLocaleDateString();
    if(enddate == today) { 
      result = result + row[8] + "   Dates: " + row [24] + " - "+ row[25] + '\n'
    }    
    if (result != "") {
      var body = "List of records ending today: " + '\n\n' 
      + result + ' \n' 
      GmailApp.sendEmail("user@domain.com","Daily ending today email", body, {
           from: 'do-not-reply@domain.com',}); 
    }
  } 
}

1 Ответ

2 голосов
/ 23 октября 2019

Просто поместите оператор отправки электронной почты вне цикла for:

      var datasheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1"); 
      var numRows = datasheet.getLastRow()-1
      var data = datasheet.getRange(2, 1, numRows, datasheet.getLastColumn()).getValues();
      var today = new Date().toLocaleDateString()
      var result = "";
      for (var i = 0; i < data.length; i++) { 
        var row = data[i];
        var enddate = new Date(row[14]).toLocaleDateString();
        if(enddate == today) { 
          result = result + row[8] + "   Dates: " + row [24] + " - "+ row[25] + '\n'
        }    
      } 
      if (result != "") {
          var body = "List of records ending today: " + '\n\n' 
          + result + ' \n' 
          GmailApp.sendEmail("user@domain.com","Daily ending today email", body, {
               from: 'do-not-reply@domain.com',}); 
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...