Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 关于应用程序脚本中循环的非常简单的问题_Loops_Google Apps Script_Google Sheets - Fatal编程技术网

Loops 关于应用程序脚本中循环的非常简单的问题

Loops 关于应用程序脚本中循环的非常简单的问题,loops,google-apps-script,google-sheets,Loops,Google Apps Script,Google Sheets,我想这很愚蠢,因为这很容易。我试图在谷歌上找到答案,但找不到解决办法 我正在做一些基本的循环: function Testing_Loops() { var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var lr = ss.getLastRow(); for (var i = 3;i<=lr;i++){ var Clients = ss.getRange(i,2).getValue

我想这很愚蠢,因为这很容易。我试图在谷歌上找到答案,但找不到解决办法

我正在做一些基本的循环:

function Testing_Loops() {

  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lr = ss.getLastRow();

  for (var i = 3;i<=lr;i++){

      var Clients = ss.getRange(i,2).getValue();

        }
}

在第2列中,我有一些带有客户端名称的行。我想把它们存储在一个变量中。我的问题是,目前,Clients变量中唯一的客户机是最后一行的客户机。这是有意义的,因为我的循环每次都会覆盖我的变量

如何将所有名称存储在变量中

创建这样一个列表:

final List<Client> clients = new ArrayList<>();
使用getDataRange获取当前值

function Testing_Loops() {

  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  var clients = ss.getDataRange().getValues().map(function(row){
    return row[1];
  });

  Logger.log(clients);
}
如果您需要将其映射到html以发送电子邮件,请尝试以下操作

/**
 *
 */
function getHtmlListForEmail() {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  var clients = ss
    .getDataRange()
    .getValues()
    .map(function(row) {
      return Utilities.formatString('<li>%s</li>', row[1]);
    })
    .join('\n');

  return Utilities.formatString('<ul>%s</ul>', clients);
}

/**
 *
 */
function sendMail() {
  MailApp.sendEmail('contributor.pw', 'Title', '', {
    htmlBody: getHtmlListForEmail()
  });
}

因此,我设法在一个数组中存储多个客户端名称。 我是这样做的:

var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lr = ss.getLastRow();
  var allEmail = ss.getRange(1, 13).getValue();
  var listClientsNames=[];  


  for (var i = 3;i<=lr;i++){

        var originallist = ss.getRange(i,2).getValue();
        listClientsNames.push(originallist);
        }


  //MailApp.sendEmail(allEmail, "Title", listClientsNames);


}
我现在正试图将客户列表发送到我的电子邮件中。它工作得很好。然而,我收到的清单如下: 客户1、客户2、客户3等等

我能不能以一种简单的方式做一些垂直显示的事情: 客户1 客户2 客户3


非常感谢你的帮助!!我非常感激

var liststr=listClientsNames.join;我更新了我的答案你在应用程序脚本中使用Java吗?这样行吗?
/**
 *
 */
function getHtmlListForEmail() {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  var clients = ss
    .getDataRange()
    .getValues()
    .map(function(row) {
      return Utilities.formatString('<li>%s</li>', row[1]);
    })
    .join('\n');

  return Utilities.formatString('<ul>%s</ul>', clients);
}

/**
 *
 */
function sendMail() {
  MailApp.sendEmail('contributor.pw', 'Title', '', {
    htmlBody: getHtmlListForEmail()
  });
}
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lr = ss.getLastRow();
  var allEmail = ss.getRange(1, 13).getValue();
  var listClientsNames=[];  


  for (var i = 3;i<=lr;i++){

        var originallist = ss.getRange(i,2).getValue();
        listClientsNames.push(originallist);
        }


  //MailApp.sendEmail(allEmail, "Title", listClientsNames);


}