javascript - 如何记录谷歌应用脚​​本中一列中所有单元格的值

标签 javascript google-apps-script

我正在尝试获取索引为第 11 列(var check)的 L 列中的所有值。但是我只得到列中第一个单元格的值,它停止循环。我已经创建了一条评论以供引用。

有人可以帮帮我吗?

请忽略: 看起来您的帖子主要是代码;请添加更多详细信息。 看起来您的帖子主要是代码;请添加更多详细信息。 看起来您的帖子主要是代码;请添加更多详细信息。

function myFunction(e) {

  var sheet = SpreadsheetApp.openById("1naSWINA8_uxeLUsj0lFntqILyDj2nirb56uvkBel79Y").getSheetByName("CRM Feedback");

  var ss = SpreadsheetApp.getActive().getSheetByName("Form Responses 1");

  var data = sheet.getRange(4, 1, ss.getLastRow(), ss.getLastColumn()).getValues();

  var manager_email = "XXXXX";

  for( var i = 0; i< data.length;i++ ) {

    var timestamp =             data[i][0];
    var requesterEmail =        data[i][1];
    var starRating =            data[i][2];
    var requestCatergory =      data[i][3];
    var description =           data[i][4];
    var label =                 data[i][5];
    var ticketId =              data[i][6];
    var comment =               data[i][7];
    var status =                data[i][8];
    var priority =              data[i][9];
    var office =                data[i][10];


//I am trying to log all the values in column 11
   var check = data[i][11];
    Logger.log(check)

    var checkTimestamp = data[i][0]

    if(check == false){
      continue;
    } else {

      var subject = "CT IT feedback - ";
      var body = "<body>";
      body += "<br><b>Requester email:</b> " + requesterEmail
      body += "<br><b>Star Rating:</b> " + starRating
      body += "<br><b>Request Category</b> " + requestCatergory
      body += "<br><b>Description:</b> " + description
      body += "<br><b>label: </b> " + label
      body += "<br><b>Ticket ID: </b>" + ticketId
      body += "<br><b>Comment: </b>" + comment
      body += "<br><b>status: </b>" + status
      body += "<br><b>priority:</b> " + priority
      body += "<br><b>office: </b>" + office

      body += "</body>";

      MailApp.sendEmail(manager_email, subject, body, {htmlBody:body}) 

       var sent_string = "sent";

    ss.getRange(i + 1, 12).setValue(sent_string)


    if (sent_string){
      return


     }

    }

  }


}

最佳答案

  • 您想遍历所有数据行并为状态未设置为“已发送”的每一行发送电子邮件
  • 您想在发送电子邮件后将一行的状态设置为“已发送”

问题是

  • 您有一个 return 语句,它使您退出 for 循环并停止迭代

  • 您似乎没有更改右侧工作表和右侧行的状态

我建议你修改你的代码如下:

function myFunction(e) {

  var sheet = SpreadsheetApp.openById("1naSWINA8_uxeLUsj0lFntqILyDj2nirb56uvkBel79Y").getSheetByName("CRM Feedback");

  var ss = SpreadsheetApp.getActive().getSheetByName("Form Responses 1");

  var data = sheet.getRange(4, 1, ss.getLastRow(), ss.getLastColumn()).getValues();

  var manager_email = "XXX";

  for( var i = 0; i< data.length;i++ ) {

    var timestamp =             data[i][0];
    var requesterEmail =        data[i][1];
    var starRating =            data[i][2];
    var requestCatergory =      data[i][3];
    var description =           data[i][4];
    var label =                 data[i][5];
    var ticketId =              data[i][6];
    var comment =               data[i][7];
    var status =                data[i][8];
    var priority =              data[i][9];
    var office =                data[i][10];


//I am trying to log all the values in column 11
   var check = data[i][11];
Logger.log(check)

    var checkTimestamp = data[i][0]
    if(check != "sent"){
      var subject = "CT IT feedback - ";
      var body = "<body>";
      body += "<br><b>Requester email:</b> " + requesterEmail
      body += "<br><b>Star Rating:</b> " + starRating
      body += "<br><b>Request Category</b> " + requestCatergory
      body += "<br><b>Description:</b> " + description
      body += "<br><b>label: </b> " + label
      body += "<br><b>Ticket ID: </b>" + ticketId
      body += "<br><b>Comment: </b>" + comment
      body += "<br><b>status: </b>" + status
      body += "<br><b>priority:</b> " + priority
      body += "<br><b>office: </b>" + office

      body += "</body>";

      MailApp.sendEmail(manager_email, subject, body, {htmlBody:body}) 
       var sent_string = "sent";
       //are you sure you want to set the stutus in ss and not in sheet to 'sent'?
      //Keep in mind that you start with row 4
    sheet.getRange(i +4, 12).setValue(sent_string)
    }
  }
}

关于javascript - 如何记录谷歌应用脚​​本中一列中所有单元格的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58212572/

相关文章:

google-apps-script - 将多行附加到电子表格 - Google Apps 脚本

javascript - 如何在 htmlService 中追加新内容而不需要调用 x 时间(gs 代码)

javascript - 通过 AJAX 和 jQuery 将变量 XML 作为属性的参数

javascript - 从变量设置动态 javascript 函数名称

javascript - 如何在 Typescript 的 Angular 指令类中添加 Controller

javascript - ui-router - $state.go() 不工作

javascript - 如何在 HTML 页面中的每个链接前面添加一个字符串?

javascript - Google 脚本 - 超出最大执行时间

javascript - HTML 服务中对象引用丢失

javascript - 在 Safari 中从 JQuery 追加视口(viewport)