Google表单 - 触发电子邮件,以便在表单提交时发送Google电子表格中的所有列

时间:2015-03-05 03:37:59

标签: google-apps-script google-sheets google-form

我创建了一个谷歌表单,其中包含5个人口统计学问题,然后是60个比例问题,用户将评估它对它们的适用程度(选择1-5)。我已经合并了copyDown附加组件,允许将多个问题组合到一个特定的类别分数(即问题11,31,51汇总在一起,给出一个类别的总分))显示在右侧(从BR列开始)表单中自动生成的数据。我想通过电子邮件报告每个表单提交的方法,并在http://www.labnol.org/internet/google-docs-email-form/20884/找到一个教程,用于发送包含表单中提交的数据的电子邮件。

/* Send Google Form by Email v2.1 */
/* For customization, contact the developer at amit@labnol.org */
/* Tutorial: http://www.labnol.org/?p=20884 */

function Initialize() {

  var triggers = ScriptApp.getProjectTriggers();

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

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

}

function SendGoogleForm(e) 
{  
  try 
  {      
    // You may replace this with another email address
    var email = Session.getActiveUser().getEmail();

    // Optional but change the following variable
    // to have a custom subject for Google Form email notifications
    var subject = "Google Docs Form Submitted";  

    var s = SpreadsheetApp.getActiveSheet();
    var columns = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];    
    var message = "";    

    // Only include form fields that are not blank
    for ( var keys in columns ) {
      var key = columns[keys];
      if ( e.namedValues[key] && (e.namedValues[key] != "") ) {
        message += key + ' :: '+ e.namedValues[key] + "\n\n"; 
      }
    }

    // This is the MailApp service of Google Apps Script
    // that sends the email. You can also use GmailApp for HTML Mail.

    MailApp.sendEmail(email, subject, message); 

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

}

此脚本非常适合发送包含表单回复的电子邮件,但是,无法在Google电子表格中创建包含用于汇总类别的公式的任何其他列。

有没有办法在每个表单提交后发送一封电子邮件,以包含随表单提交的任何数据,以及在使用公式汇总类别的表单数据右侧的列中找到的任何其他数据操作?

提前感谢任何建议!

1 个答案:

答案 0 :(得分:0)

目前SendGoogleForm()仅从响应表中提取响应,需要更新它以包含您创建的额外值。

如果您允许我查看回复表(andrewr1969'at'gmail'dot'com),我可以为您弹出这些额外的行。