【问题标题】:MailApp: fetch rows instead of columnsMailApp:获取行而不是列
【发布时间】:2019-09-09 11:08:41
【问题描述】:

在 Google Scripts 的 MailApp 教程的脚本中,我想在 for (i in data) 部分中将“Fetch Column 1”更改为“Fetch Row 1”。有人可以解释一下怎么做吗?

function sendEmails() {
  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, 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);
  }
}

【问题讨论】:

  • 您已经将行定义为row = data[i]; 使用它吗?

标签: google-apps-script google-sheets google-api google-sheets-api


【解决方案1】:

修改代码以使用行而不是列:

将问题添加到您的观察列表 在 Google 脚本的 MailApp 教程的脚本中,我想在(数据中的 i)部分中将“获取列 1”更改为“获取行 1”。有人可以解释一下怎么做吗?

function sendEmails() {
  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, 2);
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  //loop through all columns
  for (var i=0;i<data[0].length;i++) {
    var emailAddress = data[0][i]; // First row, column i
    var message = data[1][i]; // Second row, column i
    var subject = 'Sending emails from a Spreadsheet';
    MailApp.sendEmail(emailAddress, subject, message);
  }
}

您可能需要修改范围,具体取决于数据的结构。像getLastColumn() 这样的方法可以让你自动找到最后一列的内容,而不是手动设置限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多