【发布时间】:2020-09-01 15:56:42
【问题描述】:
我是 Google Apps 脚本的新手。我有一张从表单提交中收集一些“订单号”的表格。我想通过我的电子表格中的事件(提交表单)发送邮件。该表格将提供一个订单号。 提交表单时,它将匹配整个列中较早提交的订单号。如果匹配一次,则不会发送邮件。如果不匹配,它将向订单号旁边的电子邮件地址发送邮件。
电子邮件地址将来自使用 VLOOKUP 的同一电子表格中的另一个工作表。我设法做到了。 对不起,如果我的英语有任何错误。
编辑:
我试过 map()、 filter()、indexOf()这些方法。但我对这个太陌生了。
function search(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Copy of orderStatus");
var lr = ss.getLastRow() - 1;
var keyword = ss.getRange("H5").getValue();
var dataSource = ss.getRange(2, 2, lr, 1).getValues();
var mapped = dataSource.map(function(r){
return r[0]});
var showPos = mapped.indexOf(keyword) + 2;
var getMail = ss.getRange(showPos, 4).getValue();
var filted = mapped.filter(filterlogic);
}
var filterlogic = function(r){
if(r !== "zil20200010"){
return true;
} else {
return false;
}
}
【问题讨论】:
-
显示您的脚本。提供minimal reproducible example
-
我需要看看你的剧本。 我尝试了 map() 、 filter() 、 indexOf() 这些方法。 展示一下。展示你的尝试。 Edit 显示您的脚本。
-
@TheMaster 我在这里添加了我的代码。我正在测试这些方法。我也是 javascript 新手。
-
您能否在
var ss = ...之后添加此行console.log(JSON.stringify(ss))并在您的问题中显示ss的内容。 -
见developers.google.com/apps-script/guides/triggers/…你得到一个事件对象,如果你得到一个触发器,可以用来查找现在提交的实际行数据。 Search 样品。另见tag info page。
标签: javascript google-apps-script google-sheets triggers