将单元格值分配给变量失败

时间:2014-01-11 17:15:28

标签: javascript google-sheets

我正在编写一个google电子表格的脚本,该脚本应检查特定单元格的值是否为“是”。如果是这样,它应该结束。如果没有,它应该发送一封包含其他几个单元格内容的电子邮件到指定的地址,并向指定的单元格写“是”。但是,代码中的if条件似乎总是评估为true,即使它应该评估为false。该脚本将“是”写入指定的单元格并发送电子邮件。但是,虽然电子邮件包含指定单元格的内容,但它们都是乱序的。这是脚本:

function sendNotification() {

    var sheet = SpreadsheetApp.getActiveSheet();
    var dataRange = sheet.getRange(2,1,1,6);
    var data = dataRange.getValues();
    var dateSubmitted = data[0];
    var dateDue = data[1];
    var url = data[2];
    var currentText = data[3];
    var newText = data[4];
    var emailSent = data[5];
    var test = 'Yes';
    var emailAddress = 'harland.westgate@gmail.com';
    var message = 'On ' + dateSubmitted + ' a colleague requested that ' + url + ' be changed to replace the text ' + currentText + ' with ' + newText + '.  This change should be completed by ' + dateDue;
    var subject = 'A website change has been requested';

    if (emailSent!=test) {  // Prevents sending duplicates
        MailApp.sendEmail(emailAddress, subject, message);
        sheet.getRange(2,6).setValue(test);
        // Make sure the cell is updated right away in case the script is interrupted
        SpreadsheetApp.flush();
   }
}

相关单元格(抱歉,试图截图但代表太低):

A2:2014年1月11日 B2:2014年1月17日 C2:www.google.com D2:Lorem ipsum E2:Dolor坐下来 F2:是的

这是它转储到电子邮件正文中的内容:

2014年1月11日星期六00:00:00 GMT-0500(EST),2014年1月17日星期五00:00:00 GMT-0500(EST),www.google.com,Lorem ipsum,Dolor sit amit,Yes一位同事要求更改undefined以将undefined替换为undefined。此更改应由未定义的

完成

我进行了广泛的搜索,但没有找到任何行为的解释。我不认为脚本无法读取单元格区域的值,因为电子邮件正文包含这些值(而不是我期望它们的位置)。然后,在我期待这些值的地方,它会以“未定义”的形式出现。

1 个答案:

答案 0 :(得分:0)

记住getValues()会返回一个二维数组值。

尝试:

...
var dateSubmitted = data[0][0];
var dateDue = data[0][1];
var url = data[0][2];
...