Почему в Google листах отсутствует последнее письмо при отправке? - PullRequest
0 голосов
/ 12 марта 2020

Мой лист Google отправит копию листа в формате PDF на список из 4 электронных писем (в ячейках L5: L8), но кажется, что электронное письмо в ячейке L8 никогда не выбиралось, регистратор показывает его в массиве! , посмотрите мой код и помогите разобраться в проблеме! Я подозреваю, что что-то не так в моем FOREACH l oop.

    function onEdit2(e) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var r  = sheet.getRange('L11').getValue();
  if (r == "Send") {
    var ss = SpreadsheetApp.getActiveSpreadsheet()
    var ssID = ss.getId();
    var sheet = ss.getActiveSheet();
    var sheetName = ss.getName();
    var key = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
    var token = ScriptApp.getOAuthToken();
    var setcolor= SpreadsheetApp.getActiveSheet().setTabColor("#0000A0");
   var emails= sheet.getRange("L5:L8").getValues();


    var subject = "Daily report ";
    var body = "Please find the attached" +" "+ key ;

    var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export?" 
      + "format=xlsx" +  "&gid="+sheetgId+ "&portrait=true" + 
      "&exportFormat=pdf";


    var tempSheet = ss.insertSheet("tempSheet"); // Added
    sheet.getRange("A1:J27").copyTo(tempSheet.getRange(1, 1)); // Added
    SpreadsheetApp.flush(); // Added
    var sheetgId = tempSheet.getSheetId(); // Added

    var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export?" + "format=xlsx" +  "&gid="+sheetgId+ "&portrait=true" + "&exportFormat=pdf";
    var result = UrlFetchApp.fetch(url, {headers: {'Authorization': 'Bearer ' +  token}});
    var contents = result.getContent();
    emails.forEach(function(email){

    MailApp.sendEmail(email.toString(),sheetName ,body, {attachments: [{fileName: sheetName + ".pdf", content: contents, mimeType: "application//pdf"}]});

    ss.deleteSheet(tempSheet); // Added
  })
  }
    var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  for ( var i = 0 ; i<sheets.length ; i++) {
    var sheet1 = sheets[i];
     sheet1.getRangeList(['L3','L11']).clearContent();
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...