javascript - 使用谷歌表格和脚本发送电子邮件
问题描述
我正在尝试使用脚本在编辑单元格后发送电子邮件。假设我有下面的表格,我想发送一封包含关键字 2(单元格 a3)的电子邮件,只有当ok
它写在单元格 b3 上时。同样,如果我写ok
在 cell 上b2
,我想用keyword
(cell a2)发送一封电子邮件
| COL A | COL B |
| keyword | |
| keyword2 | ok |
我使用了这个脚本并且能够发送一封电子邮件,但是它需要两行,我只希望脚本占据ok
adiacent 的行(不是所有行)
你能帮我解决这个问题吗?
代码片段
/**
* add trigger for onedit -
* see menu -> Resouces -> Current project's triggers
*/
function Initialize() {
var triggers = ScriptApp.getProjectTriggers();
for (var i in triggers) {
ScriptApp.deleteTrigger(triggers[i]);
}
ScriptApp.newTrigger("sendNotification")
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onEdit()
.create();
};
/**
*
*/
function sendNotification(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 2; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 10)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var keyword = row[0]; // Colonna A
var URL = row[3]; // Colonna D
if ("B2" == e.range.getA1Notation() || "B3" == e.range.getA1Notation()) {
if (e.value == "ok") {
//Define Notification Details
var recipients = "email@example.com";
var subject = "Update" + e.range.getSheet().getName();
var body = "cell " + keyword;
//Send the Email
MailApp.sendEmail(recipients, subject, body);
}
}
}
}
解决方案
从您的代码看来,您只是在检查“Ok”这个词,但您还没有创建一个变量来存储任何包含“ok”的单元格,然后显示该变量中包含“ok”的所有信息。
推荐阅读
- javascript - 响应式导航框
- javascript - 如何在 Javascript 中操作位?
- node.js - 在 node js 的 vs 代码中遇到问题
- c - 在此代码中找不到正确的输出
- python - Python:我们可以从 dict 或像 ts 这样的对象中获取值吗?
- python - 在数据框上使用自定义条件的 Pandas 数据透视表
- php - 搜索查询条件不起作用 - Laravel 5.7
- scala - Spark 提供 DataFrame groupBy 中所有列的列表
- algorithm - 关于时间复杂度和主定理的问题
- php - ImageMagick 与 MAMP 4 - mac mojave