【发布时间】:2015-09-22 19:09:22
【问题描述】:
我有一个谷歌表格和相应的结果电子表格。我在表单上有一个谷歌应用程序脚本,旨在在表单提交时激活。它读取条目,将填写的列格式放入电子邮件中,然后将该电子邮件发送到指定地址。所有这些都按预期工作。
但是,有一个 case 语句应该根据其中一列中的文本设置目标电子邮件地址和主题行。除了默认情况外,我无法让它读取任何内容。列(“校园”列)中的文本似乎与案例陈述相匹配?有人有建议吗?谢谢!
function SendGoogleForm(e) {
if (MailApp.getRemainingDailyQuota() < 1) return;
var s = SpreadsheetApp.getActiveSheet();
var columns = s.getRange(1, 1, 1, s.getLastColumn()).getValues()[0];
var email = "";
var subject = "";
var message = "";
switch (e.namedValues["Campus"]){
case "Lower School":
email = "xxxx@*****.org";
subject = "LS Ticket Created";
message = "Campus column is: " + e.namedValues["Campus"] + "\n";
message += "Case is: Lower School"+"\n";
break;
case "Upper School":
email = "yyyy@*****.org";
subject = "US Ticket Created";
message = "Campus column is: " + e.namedValues["Campus"] + "\n";
message += "Case is: Upper School"+"\n";
break;
case "S*******":
email = "zzzz@*****.org";
subject = "SC Ticket Created";
message = "Campus column is: " + e.namedValues["Campus"] + "\n";
message += "Case is: S*******"+"\n";
break;
default:
email = "xxxx@*****.org";
subject = "General Ticket Created";
message = "Campus column is: " + e.namedValues["Campus"] + "\n";
message += "Case is: Default"+"\n";
break;
}
for (var keys in columns) {
var key = columns[keys];
if (e.namedValues[key] && (e.namedValues[key] !== "")) {
message += key + ' :: ' + e.namedValues[key] + "\n\n";
}
}
MailApp.sendEmail(email, subject, message);
}
【问题讨论】:
-
肯定是case语句的问题。以下代码返回 true
if (e.namedValues["Campus"] == "Lower School"){(假设“Lower School”在校园列中,因此它们应该匹配。我显然不了解 case 语句如何匹配。我可以执行嵌套 if-else 语句,但我不明白“案例”的正确含义,这让我很烦恼。想法?
标签: google-apps-script case-statement