GoogleScript — отправлять непустые значения по электронной почте с листа Google — OnFormSubmit

У меня есть лист с примерно 50 столбцами, и я пытаюсь отправить пользователю непустые поля в формате HTML по электронной почте; но только непустые поля, вот мой код, который возвращает поля Null и Non-Null, плюс мне нужно, чтобы он отправлял по электронной почте только последнюю отправку формы, а не все из них:

            function onFormSubmit(e) {
      var ss = e.source;
      var sheet = ss.getActiveSheet();          
      var range = e.range.getA1Notation();
      var column = e.range.getColumn();
      var row = e.range.getRow();
      var values = e.namedValues;
      var htmlBody = '<ul>';
      for (Key in values) {
        var label = Key;
        var data = values[Key];
        htmlBody += '<li>' + label + ": " + data + '</li>';
       };
       htmlBody += '</ul>'
     var Submitter = 3;
     var Submitteremail = sheet.getRange(row,Submitter).getValue();

  MailApp.sendEmail({
         to: "Jason@xxxx.com", 
         replyTo: Submitteremail, 
         subject, 
         htmlBody : htmlBody});
 Logger.log("checkpoint5");
 }

1 ответ

Вот мой добавленный код после вашей первоначальной помощи:

      function onFormSubmit(e) {
const sh=e.range.getSheet();          
var htmlBody='<ol>';
var Url = "https://docs.google.com/xxx";
var Text = "CMF Form Submission Sheet";
for(key in e.namedValues) {
  if(e.namedValues[key][0].length>0) {
    htmlBody += '<li>' + key + ": " + e.namedValues[key][0] + '</li>';
 }
}
htmlBody += '<p>' + '\n' + '\n' + "<a href=\""+ Url + "\">" + Text + "</a>" + 
'\n' + '\n' + '\n' + '<p>' + '</ol>' ;
var Submitteremail = e.values[1];
var Type = e.values[6];
var CMFNumber = e.values[0];
var Sub = "A new CMF has been submitted for a " + Type;
MailApp.sendEmail({to:"Jason.@xxx.com",subject: Sub, replyTo:Submitteremail, 
htmlBody:htmlBody});
Logger.log(html);
}
Другие вопросы по тегам