gpt4 book ai didi

javascript - 用于格式化电子表格的 Google 脚本制作工具

转载 作者:行者123 更新时间:2023-11-28 08:59:17 24 4
gpt4 key购买 nike

这是我第一次发帖,所以如果我遗漏了任何重要细节,请耐心等待。

无论如何,总结一下这个问题:我一直在尝试让一个脚本在 Google 脚本制作器上运行,以格式化连接到表单的电子表格,以便直接转到我的电子邮件。

所以基本上用户表单 --> 电子表格 --> 我的电子邮件

问题非常标准:

  1. 有什么问题吗?
  2. 您在哪里

但是我想使用的一个问题是“这个问题的优先级是什么?”高还是低。我有多项选择格式,所以它是一个简单的选择。

我想要的伪代码:

if (priority = low) put #priority low onto the email

很简单,但是我似乎无法让它工作,这是我的代码:

function sendFormByEmail(e) 
{
// Remember to replace XYZ with your own email address
var email = "email";

var subject = "Help Desk Form Submitted";

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

if(message.indexOf("What is the priority of this problem? = Low")){
priority += "#priority low";
}
else
priority == "GFHHFFHAHFH ";

for(var i in headers){
message += headers[i] + ' = \t \t'+ e.namedValues[headers[i]].toString() + "\n\n"; }

if (message.indexOf("What is the priority of this problem? = Low"))
message += "This is a test";
else
message += "This is not a test";

MailApp.sendEmail(email, subject, message);
}

最佳答案

让我们看一下 if(message.indexOf()... 的第一个实例。它有一些问题:

  • 前几行,message 被设置为空字符串...因此您在其中找不到“优先级”字符串。

  • if 语句将 indexOf() 的返回值视为 bool 值。但是,当未找到某个项目时,.indexOf() 的返回码为 -1,这是“true-ish”。如果找到该字符串,并且该字符串位于搜索主题的开头,则返回将为 0,即“false-ish”。如果在任何其他位置找到它,则该值将为“>0”,也是“true-ish”。

  • else 中存在拼写错误。比较 == 应该是赋值 =,或者如果您愿意的话 +=

  • 看周围的代码,这一段看起来像是以前版本留下的,可以删除。

现在看第二个实例。

  • 现在应该填充消息。但是,比较仍然使用 .indexOf() 的错误 bool 解释。

  • 搜索字符串包含一批空格...但是之前循环响应的代码使用制表符将“标题”与“值”分开,因此搜索将始终返回“-1”(这将被解释为true)。

还有一些其他的整理项目。您可能需要:

function sendFormByEmail(e) 
{
Logger.log(JSON.stringify(e));
var email = Session.getEffectiveUser().getEmail();
var subject = "Help Desk Form Submitted";
var message = "";

var s = e.range.getSheet(); // Sheet that received form response
var headers = s.getDataRange().getValues()[0];

for (var question in headers) {
message += headers[question] + ' = \t\t' + e.values[question] + '\n\n';
}

// Add text relative to the priority of the reported issue.
if (e.namedValues["What is the priority of this problem?"].toString() === "Low")
message += "This is a test";
else
message += "This is not a test";

Logger.log(message);
MailApp.sendEmail(email, subject, message);
}

PS:您会明白为什么建议保持表单问题简短,例如“优先级”,并将解释性句子保留为辅助文本!

关于javascript - 用于格式化电子表格的 Google 脚本制作工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17973497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com