从变量“Users”获取数据并将数据放入Spreadsheet中的字段中

时间:2014-04-02 08:17:55

标签: javascript google-apps-script

我有来自Google Developer网站的这个脚本,它可以获取所有域用户:

function listAllUsers() {
  var pageToken, page;
  do {
    page = AdminDirectory.Users.list({
      domain: 'wter.se',
      orderBy: 'givenName',
      maxResults: 100,
      pageToken: pageToken
    });
    var users = page.users;
    if (users) {
      for (var i = 0; i < users.length; i++) {
        var user = users[i];
      }
    } 
    pageToken = page.nextPageToken;
  } while (pageToken);
}

我想获取每个用户参数并将其添加到电子表格中。

变量用户拥有所有这些参数(users.EmailAdress等),但我如何将它们放在电子表格中?

1 个答案:

答案 0 :(得分:0)

您必须为工作表中的每一行构建一个数组(一个2D数组),其中包含一个数组,下面是一个包含3列的示例,使用简单的UserManager class列出了我的域的所有用户。

代码结构几乎相同,for循环和users[i]属性......  这里的输出数组称为'r',并使用最终的setValues(r);写在工作表中 - 代码还有一个你不需要的排序功能,但我把它留在这里以获取信息,如果有人需要它。

function listUsers(s) {     
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  sheet.getDataRange().clear()
  var users = UserManager.getAllUsers();
  var r = new Array();
  var f = new Array();

  for( var i = 0 ; i < users.length ; i++ ){
    var Umail = users[i].getEmail(); 
    var UnomF = users[i].getFamilyName()
    var UnomP = users[i].getGivenName()

    r.push([UnomF,UnomP,Umail]);
  }   
  r.sort(function(x,y){
    var xp = x[0].toLowerCase();
    var yp = y[0].toLowerCase();
    return xp == yp ? 0 : xp < yp ? -1 : 1;//  sort on name ascending
}
        )
  var header = ['Nom de famille','Prénom','Email']
  sheet.getRange(1,1,1,r[0].length).setValues([header]).setFontWeight('bold')
  .setBackground('silver').setBorder(true,true,true,true,true,true);
  sheet.getRange(2,1,r.length,r[0].length).setValues(r);
}