0

我正在尝试制作一个简单的脚本,向通过 Google 表单填写调查的用户发送电子邮件。

他们将进行调查,答案记录在电子表格中,此脚本将通过电子邮件向他们发送问题的副本(标题)以及他们的答案(应该是表格的最后一行。)

它发送到的电子邮件将是最后一列,不包含在电子邮件中。

这是我正在编写的脚本:

function sendFormByEmail(e) {

 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var s = ss.getActiveSheet();

 var emailSubject = "EMAIL-SUBJECT-HERE";  
 var yourEmail    = "CURRENTLY-JUST-A-STATIC-EMAIL-ADDRESS"; //get this from a field.value then just cut off that field from being included in the email (just do column-1)...


 var headers = headersRange.getValues()[0];  //google api to get the header values.

 var lastRow = s.getLastRow();

 var message += headers.toString();
 message += (headersRange.getValue()[last]).toString(); //should get the last row of data?

  MailApp.sendEmail(yourEmail, emailSubject, message); 
}
4

2 回答 2

0

您可能会发现很难阅读一封电子邮件的结果,其中所有问题都在一行中,所有答案都在另一行中。

一次遍历标题和表单值很容易,如果您愿意,只需跳过电子邮件地址。

function sendFormByEmail(e) {

  var emailSubject = "EMAIL-SUBJECT-HERE";  
  var emailQ = 1;  // Column number with email address

  var headers = SpreadsheetApp.getActiveSheet().getDataRange().getValues()[0];  //google api to get the header values.

  var message = "Your survey responses:\n\n";

  // Print Questions & Answers in pairs
  for (i=0; i < headers.length; i++) {
    if (i == emailQ) continue; // skip email address
    message += headers[i]+"\n"
             + e.values[i]+"\n\n";
  }

  MailApp.sendEmail(e.values[emailQ], emailSubject, message); 
}
于 2013-04-30T13:12:52.220 回答
0

添加一个在提交表单时执行的触发器,并将此函数附加到您的触发器。
在您的代码中,您可以e.values[]在代码中使用来引用用户提交的值。这样您就不必阅读电子表格

function  sendFormByEmail(e) {
  var email = e.values[0];  // assuming 1st field is email
  var firstName = e.values[1]; // assuming 2nd field is first name
  ...

}
于 2013-04-30T08:39:40.180 回答