我正在尝试制作一个简单的脚本,向通过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);
}
答案 0 :(得分: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
...
}
答案 1 :(得分: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);
}