如何通过 Apps 脚本 return 在 Google Sheet 中运行

How to return function in Google Sheet through AppsScript

我想通过 Google Sheet 界面中的自定义菜单打印 GA 帐户列表。我在我的应用程序脚本中收集了这段代码。当我 运行 列表帐户功能时,它工作得很好 - https://prnt.sc/uvfag3

我想在 Google Sheet 界面打印这个。下面是我的代码

 function listAccounts() { 
  var sheet= SpreadsheetApp.getActive();
  var ss = sheet.getActiveSheet(); 
  var data = ss.getDataRange();
 

  var accounts = Analytics.Management.Accounts.list();
  if (accounts.items && accounts.items.length) {
    for (var i = 0; i < accounts.items.length; i++) {
      var account = accounts.items[i];
      Logger.log(account.name, account.id);

     
    }
  } 
}

function onOpen () {

var ui= SpreadsheetApp.getUi();
    ui.createMenu("Client Accounts")
      .addItem('List GA Accounts', 'listAccounts')
      .addToUi();

}

假设 Google Sheet Interface 你的意思是将数据写入你的传播sheet,你可以使用 map to format your data as a 2D array, and setValues(values) 将该数据写入你的 sheet:

function listAccounts() { 
  var sheet= SpreadsheetApp.getActive();
  var ss = sheet.getActiveSheet(); 
  var accounts = Analytics.Management.Accounts.list();
  if (accounts.items && accounts.items.length) {
    var values = accounts.items.map(item => [item.name, item.id]);
    ss.getRange(1, 1, values.length, values[0].length).setValues(values);
  } 
}

注:

我不确定您要将数据写入 sheet 中的哪个位置,因此在下面的示例中,它从第一行和第一列 (A1) 开始。如果不是,请修改前两个参数:

ss.getRange(1, 1, values.length, values[0].length)

参考: