【问题标题】:how to mail only the filled values and not the blank values in google form?如何只邮寄填充值而不是谷歌表单中的空白值?
【发布时间】:2013-09-29 12:45:54
【问题描述】:

我制作了一个包含许多字段的谷歌表单。我已经放置了一个触发器来将表单值发送到一个特定的(也将它保存在谷歌驱动器的 excel 表中)。但它也会将用户未选择的空白值邮寄给我。我应该如何通过修改以下代码仅将填充的值发送到邮件。

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 ="abc@abc.com";

    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());
  }

}

请帮助我如何做到这一点。谢谢你:)

【问题讨论】:

    标签: javascript email triggers google-apps-script google-forms


    【解决方案1】:

    另一种方法是使用三元语句:

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

    我在 GAS/Javascript 脚本中使用它来防止在生成的电子邮件中发送无关数据。

    【讨论】:

      【解决方案2】:

      我找到了解决问题的方法。只是在 for 循环中添加了一个简单的 if 语句。

      解决方案:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多