Google Apps 脚本 | Switch Case 仅选择默认选项
Posted
技术标签:
【中文标题】Google Apps 脚本 | Switch Case 仅选择默认选项【英文标题】:Google Apps Script | Switch Case selecting default option only 【发布时间】:2014-08-02 06:30:59 【问题描述】:我有一个很好的表单,用户可以在其中提交数据。为了学习,我只有一个表单域,它是一个带有 2 个选项的单选按钮。生成的电子表格只有 2 个列,“时间戳”和“名称”。
我的脚本的目标是评估表单提交中的事件驱动数据,然后更改变量中的值,以便可以将电子邮件发送给不同的用户。案例永远不会评估,结果始终是默认值。这是我的脚本,其中来自其他来源:Digital Inspiration。
函数初始化() var triggers = ScriptApp.getScriptTriggers(); for(触发器中的变量 i) ScriptApp.deleteTrigger(triggers[i]); ScriptApp.newTrigger("SendGoogleForm") .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet()) .onFormSubmit() .create(); 函数 SendGoogleForm(e) 试试
var subject = "Form Test"; var s = SpreadsheetApp.getActiveSheet(); var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0]; var message = ""; // Credit to Henrique Abreu for fixing the sort order for(var i in headers) message += headers[i] + ' :: '+ e.namedValues[headers[i]].toString() + "\n\n"; message += headers[1] + "\n"; message += e.namedValues[headers[1]]; \\ I left this in to check datavalues in the email message += e.namedValues[headers[1]]; \\ I left this in to check datavalues in the email message += e.namedValues[headers[1]] + "\n"; var email = e.namedValues[headers[1]].toString; \\ I would ASSUME that this would store \\the spreadhseet data to the variable email,
但它似乎没有这样做。
message += "Sheet URL :: " + SpreadsheetApp.getActiveSpreadsheet().getUrl() + "\n"; switch (email) case "basdf": email = "email1@hotmail.com"; break; case "dfdsa": email = "email2@hotmail.com"; break; default: email = "email3@hotmail.com"; break; MailApp.sendEmail( to: email, subject: subject, body: message, ) catch (e) Logger.log(e.toString());
【问题讨论】:
【参考方案1】:试试这个 sn-p。它使用表单提交的值检查标题列名称,然后将相应的值分配给电子邮件变量。
var email = "";
for(var i in headers)
if (headers[i] == "email")
email = e.namedValues[headers[i]].toString();
message += headers[i] + ' :: '+ e.namedValues[headers[i]].toString() + "\n\n";
switch (email)
case "basdf":
email = "email1@hotmail.com";
break;
case "dfdsa":
email = "email2@hotmail.com";
break;
default:
email = "email3@hotmail.com";
break;
【讨论】:
以上是关于Google Apps 脚本 | Switch Case 仅选择默认选项的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Apps 脚本在 Google 表格中“清除格式”