Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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
Google apps script 从1d数组在图纸上的列中设置值_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 从1d数组在图纸上的列中设置值

Google apps script 从1d数组在图纸上的列中设置值,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个收集电子邮件组中包含的全名的脚本 其想法是在下拉列表中使用团队成员的最新列表 它工作正常,但我似乎无法让它设置我尝试过的所有值,或者只列出列表中的一个名称,或者在一个单元格中列出所有值,或者不起作用。我想这是因为它是一个一维数组,但我可能错了 以下是我目前掌握的情况: function listGroupMembers() { var GROUP_EMAIL = "email@email.com"; var group = GroupsApp.getGroupByEmail(GR

我有一个收集电子邮件组中包含的全名的脚本 其想法是在下拉列表中使用团队成员的最新列表

它工作正常,但我似乎无法让它设置我尝试过的所有值,或者只列出列表中的一个名称,或者在一个单元格中列出所有值,或者不起作用。我想这是因为它是一个一维数组,但我可能错了

以下是我目前掌握的情况:

function listGroupMembers() {
  var GROUP_EMAIL = "email@email.com";
  var group = GroupsApp.getGroupByEmail(GROUP_EMAIL);
  var users = group.getUsers();
  var str = "Group " + GROUP_EMAIL + " has " + users.length +  " members: ";
  var valueRange=[];
  valueRange[0]=[];
for (var i = 0; i < users.length; i++) {
    var user = users[i];
    var email = user.getEmail();
    var contact =  ContactsApp.getContact(email);
    if(contact!=null){
    valueRange[i]=[];
      valueRange[i].push (contact.getFullName());
      }
  }
  var sheet = SpreadsheetApp.getActive().getSheetByName("sheet name");
  var numberRows = valueRange.length;
  var range = sheet.getRange(1, 1, numberRows, 1);
  range.setValues(valueRange);
}
我正在努力将这些值输出到我的工作表的第1列第1行中,如下所示:

名字1 名称2 名字3 名字4

数组如下:[名称1、名称2、名称3、名称5等]

请帮忙,希望这一切都有意义

要将值输出到值范围并将此值范围指定给行,请执行以下操作: 根据您提供的代码,执行以下修改:

function listGroupMembers() {
  var GROUP_EMAIL = "emailgroup@email.com";
  var group = GroupsApp.getGroupByEmail(GROUP_EMAIL);
  var users = group.getUsers();
  var str = "Group " + GROUP_EMAIL + " has " + users.length +  " members: ";
  var valueRange=[];
  valueRange[0]=[];
  for (var i = 0; i < users.length; i++) {
    var user = users[i];
    var email = user.getEmail();
    var contact =  ContactsApp.getContact(email);
valueRange[i]=[];
    if(contact!=null){
      valueRange[i].push (contact.getFullName());
    }else{
      valueRange[i].push ("");
    }
  }
  var sheet = SpreadsheetApp.getActive().getSheetByName("INSERT HERE THE NAME OF YOUR SHEET");
  var numberColumns = valueRange[0].length;
  var range = sheet.getRange(1, 1, 1, numberColumns);
  range.setValues(valueRange);
}

一个问题:你说第1列,第1行,但分开单元格?您可能是指从第1列开始,第1行代表名称1。是否要将其他名称粘贴到同一行或同一列中?此外,您包含的脚本版本不包含任何名称,但包含UserLoginId。谢谢!不幸的是,它抛出了一个丢失的错误;在声明之前。第8行好的,这非常接近,除了它得到了电子邮件地址,而不是它之前所做的全名,它还水平显示它们,而不是垂直显示。我尝试这样交换:var range=sheet.getRange2,8,numberColumns,1;但这只是对全名而不是电子邮件抛出一个错误-使用我在另一个答案中提供的代码,而不是你在这里提供的代码。至于范围:您想从第2行第8列的单元格开始做什么?请看这里的正确语法:然后您想垂直插入值吗?在这种情况下,您应该在行而不是列之间循环,我将更新我的答案以显示如何执行。感谢您的帮助-我遇到以下错误:TypeError:无法将undefined的属性0.0设置为第13行-如果我删除[I],那么我将得到一个不匹配的错误行数,以达到范围
for (var i = 0; i < users.length; i++) {
    var user = users[i];
    var email = user.getEmail();
    var contact =  ContactsApp.getContact(email);
valueRange[i]=[];
    if(contact!=null){
      valueRange[i].push (contact.getFullName());
    }else{
      valueRange[i].push ("");
    }
  }
  var sheet = SpreadsheetApp.getActive().getSheetByName("INSERT HERE THE NAME OF YOUR SHEET");
  var numberRows = valueRange.length;
  var range = sheet.getRange(1, 1, numberRows, 1);
  range.setValues(valueRange);