как отправить по почте только заполненные значения, а не пустые значения в форме Google?

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

function Initialize() {

  var triggers = ScriptApp.getScriptTriggers();

  for(var i in triggers) {
    ScriptApp.deleteTrigger(triggers[i]);
  }

  ScriptApp.newTrigger("SendGoogleForm")
  .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
  .onFormSubmit()
  .create();

}

function SendGoogleForm(e) 
{  
  try 
  {  
    var email ="[email protected]";

    var subject = "Form Submission";  

    var s = SpreadsheetApp.getActiveSheet();
    var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];    
    var message = "";    
    for(var i in headers) {

      message += headers[i] + ' :: '+ e.namedValues[headers[i]].toString() + "\n\n"; 
    }

    message += "Sheet URL :: " + SpreadsheetApp.getActiveSpreadsheet().getUrl() + "\n";

    MailApp.sendEmail(email, subject, message); 

  } catch (e) {
    Logger.log(e.toString());
  }

}

Пожалуйста, помогите мне, как это сделать. Спасибо :)


person Jay Visariya    schedule 29.09.2013    source источник


Ответы (2)


Другой способ сделать это - использовать тернарный оператор:

message += e.namedValues[headers[i]] != "" ? e.namedValues[headers[i]].toString() + "\n\n" : "";

Я использую это в сценариях GAS / Javascript, чтобы не отправлять посторонние данные в итоговые электронные письма.

person delliottg    schedule 24.10.2013

Я нашел путь к своему вопросу. Просто нужно было добавить простой оператор if внутри цикла for.

Решение:

for(var i in headers) 
{
      if( e.namedValues[headers[i]].toString() != "") //Add this line.
      {   
      message += headers[i] + ' :: '+ e.namedValues[headers[i]].toString() + "\n\n"; 
      }
    }
person Jay Visariya    schedule 16.10.2013