使用Apps-Script从站点任务列表访问表数据

时间:2014-01-23 22:13:12

标签: google-apps-script

我有一个Google Apps网站,它是任务的一个实现,它为我提供了一个包含几个列的表(任务,分配给,状态,优先级,截止日期,完成百分比)。

示例数据:

enter image description here

我正在尝试使用App-Scripts访问此列表中的数据。通过SitesApp界面,我可以获得页面中的项目列表,但是当我尝试获取列表项的值时,它只给出了“任务”列,而不是“分配给”,“状态”等。

我得到的代码如下,我正处于能够获取ListItem数组的阶段,但尚未确定我是否能够访问其他列,或者是否有一种正确的方法来访问这些列中的数据。

  // Get the tasks from the page
  Logger.log("Getting all tasks in %s for %s site %s", pageName, appDomain, siteName);
  var page = SitesApp.getSite(appDomain, siteName).getChildByName(pageName)
  var listItems = page.getListItems();
  var columns = page.getColumns();
  Logger.log("Task list length is currently %s items long", listItems.length);


  for(var i in listItems)
  {
    Logger.log(listItems[i].getValueByIndex(i));
  }

listItems[i].getValueByIndex给了我看似随意的输出 - 因为我得到了最后一个条目的任务名称,第二个条目的所有者以及第一个条目的状态。

示例输出:

enter image description here

此时我对正在发生的事情以及如何访问这些数据感到非常困惑。有没有人以前解决过这个问题?

1 个答案:

答案 0 :(得分:0)

我实际上终于找到了解决这个问题的方法。我的问题是尝试迭代任务列表,因为我应该按列名称获取值。实际上按照我想要的方式运行的代码就是:

 // Get the tasks from the page
 Logger.log("Getting all tasks in %s for %s site %s", pageName, appDomain, siteName);
 var page = SitesApp.getSite(appDomain, siteName).getChildByName(pageName)
 var listItems = page.getListItems();
 var columns = page.getColumns();
 Logger.log("Task list length is currently %s items long", listItems.length);


 for(var i in listItems)
 { 
   for(var x in columns)
   {
    Logger.log(listItems[i].getValueByName(columns[x].getName())); 
   }
 }