javascript - 仅通过电子表格最后一行运行 Google 脚本?

标签 javascript for-loop google-apps-script google-sheets

我正在运行一个工作正常的电子邮件脚本,但我只希望它运行到最后一行并包含数据。如果显然没有数据,我不需要它或希望它运行。我如何在下面的示例脚本中反射(reflect)这一点?

例如,假设我的工作表中只有 3 行数据。我只需要为这 3 行运行脚本,但代码将运行 20 行。要处理的条目数量每天都会有所不同,因此我不能只将其设置为固定数量。

基本上我想要替换:

var numRows =20;// Number of rows to process

对 .getlastrow 进行一些迭代...我认为?

供引用的示例脚本:

function sendEmails() {
  var sheet =SpreadsheetApp.getActiveSheet();

  var startRow =2;// First row of data to process
  var numRows =20;// Number of rows to process

  // Fetch the range of cells A2:B3
  var dataRange = sheet.getRange(startRow,1, numRows,2)
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();

  for(i in data){
    var row = data[i];
    var emailAddress = row[0];// First column
    var message = row[1];// Second column
    var subject ="Sending emails from a Spreadsheet";
    MailApp.sendEmail(emailAddress, subject, message);
   }
}

感谢您的帮助!

最佳答案

您可以使用 getLastRow() 方法获取工作表中最后填充的行的索引。或者使用 getDataRange().getValues ,它只会获取有数据的行。

function sendEmails(){

  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow =2;// First row of data to process
  var data = sheet.getDataRange().getValues();

  for(var i=startRow; i<data.length; i++){
    var row = data[i];
    var emailAddress = row[0];// First column
    var message = row[1];// Second column
    var subject ="Sending emails from a Spreadsheet";
    MailApp.sendEmail(emailAddress, subject, message);
  }

}

关于javascript - 仅通过电子表格最后一行运行 Google 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483749/

相关文章:

javascript - 如何创建一个空白网站文件来练习 Javascript?

javascript - 带切换按钮的 Angular 动画

google-apps-script - 将文本、图像、表格、所有格式、边距从 GDoc 复制到另一个

google-apps-script - 谷歌工作表单元格重新计算

google-apps-script - 如何修复 "There are too many LockService operations against the same script"错误?

javascript - 如何在React Native中调用本地文件作为Webview的源

javascript - 如何使用angularjs比较两个json对象?

C语言 : I want to see if a value of a[] is less than all the values of b[]

objective-c - For循环,等待外部方法完成

javascript - 如何在不使用 for 循环的情况下使用迭代器对数组值求和