首页 > 解决方案 > 使用谷歌表格和脚本发送电子邮件

问题描述

我正在尝试使用脚本在编辑单元格后发送电子邮件。假设我有下面的表格,我想发送一封包含关键字 2(单元格 a3)的电子邮件,只有当ok它写在单元格 b3 上时。同样,如果我写ok在 cell 上b2,我想用keyword(cell a2)发送一封电子邮件

| COL A      | COL B  |
| keyword    |        |
| keyword2   |  ok    |

我使用了这个脚本并且能够发送一封电子邮件,但是它需要两行,我只希望脚本占据okadiacent 的行(不是所有行)

你能帮我解决这个问题吗?

代码片段

/**
 * 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);
            }
        }
    }
}

标签: javascriptexcelgoogle-sheetsgoogle-drive-api

解决方案


从您的代码看来,您只是在检查“Ok”这个词,但您还没有创建一个变量来存储任何包含“ok”的单元格,然后显示该变量中包含“ok”的所有信息。


推荐阅读