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);