我正在使用Goofle表单接收用户的应用程序,一旦提交表单,我就会使用Google表单提交触发器进行通知。它有一些问题,如(facebook个人资料链接)
但是在发送通知时,我并不希望这些链接的显示方式与用户输入的方式相同,而是应显示<{3}},Facebook(文本为超链接。) / p>
我已经了解onFormsubmit()函数,但不知道如何使用,请帮帮我。
例如:
Cell A2使用用户提交的Facebook个人资料链接。
我希望列B2自动生成为=超链接(A2,&#34; Facebook&#34;)
每当用户提交表单时,同样的事情应该发生在A3到B3之间。
答案 0 :(得分:1)
好的经过一些挖掘和测试后,我相信我找到了一个解决方案,因为你使用了“Yet Another Mail Merge”(又名YAMM)附加组件。在这里:
首先确保您的表单设置正确并链接到Google表格。创建完所有问题后,在工作表中添加另一列,并将其命名为“超级链接”或任何您喜欢的内容(以后再记住它)。我们将在脚本编辑器中使用表单提交触发器以及一些代码。
以下是代码:
function onFormSubmit(e)
{
var r = e.range;
var v = e.namedValues;
var link = v['Link'];
// For testing purposes, this part was apart of my form,
// I'd assume you'd want to change it to something more
// usable in your case. Notice that I refer to the values
// by the name of the question they preside in.
var friendlyName = v['Friendly Name'];
var rngHyper = getCellRngByCol(r, 'Hyperlink');
// See below for the meaning of the boolean
addHyperlink(rngHyper, link, friendlyName, true);
}
// Will only return one cell no matter the range size.
// Perfect for onFormSubmit(e) use case.
function getCellRngByCol(rng, col)
{
var aRng = SpreadsheetApp.getActiveSheet().getDataRange();
var hRng = aRng.offset(0, 0, 1, aRng.getNumColumns()).getValues();
var colIndex = hRng[0].indexOf(col);
return SpreadsheetApp.getActiveSheet().getRange(rng.getRow(), colIndex + 1);
}
// Add some form of hyperlink reference to one particular
// cell, passed as a range object
function addHyperlink(rng, link, name, useFormula)
{
if (useFormula)
{
// If useFormula is TRUE, use Google Sheet HYPERLINK formula,
// only if you are sure all URL's are formated properly,
// and include HTTPS/HTTP/WWW. Also looks more pleasing in Google Sheet.
var formula = '=HYPERLINK("<<URL>>", "<<NAME>>")';
formula = formula.replace('<<URL>>', link).replace('<<NAME>>', name);
rng.setFormula(formula);
}
else
{
// Else use HTML <a> tag with hyperlink referencing, which should transform
// any URL passed as a clickable hyperlink within email. Not very visually
// appealing in Google Sheet.
var value = '<a href="<<URL>>"><<NAME>></a>';
value = value.replace('<<URL>>', link).replace('<<NAME>>', name);
rng.setValue(value);
}
}
然后设置触发器,保存后可能会要求授权:
接下来,保存脚本,然后通过表单提交测试提交,以查看链接是否已正确创建,或根据需要创建。之后清除电子表格的行(而不是标题)并删除表单本身的所有响应(不是必需的,但为了测试目的而保持组织有用)。
现在,安装YAMM插件。然后它应该在工作表的末尾添加一个名为“Merge satus”的新列。在设置提交电子邮件通知之前,我们需要创建您的电子邮件模板。打开GMAIL,创建包含所需字段和布局的电子邮件,并将其另存为草稿。以下是我的例子:
我确信你熟悉这个附加组件的工作方式,所以我不需要在这里解释太多。
创建并保存草稿后,请返回附加到表单的Google表格。转到加载项&gt; YAMM&gt;配置表单提交通知。我选择了“通知一个或多个所有响应的地址”选项,这些地址与草稿中预设的“收件人:”电子邮件相关联。从下拉列表中选择您的草稿,如果需要,填写发件人姓名,并且(非常重要!!)选中“等到特定列填满后再发送电子邮件”复选框。确保选择“超链接”列(或您之前为其命名的任何内容)。这是我的参考设置:
保存,测试它和ta-da。这个超链接的简单格式已经解决! :d