0

下面是我的代码......我正在做的是我正在创建一个资源日历,然后我在我的电子表格中计算与该 bt 关联的事件的数量我只想要它一次 bt 它的 gt 在每一列中打印...... ..其次假设我有两个不同的事件,我想单独计算它..怎么做?

function caltest3(){
 var ss = SpreadsheetApp.openById("0ArPwl7-RVTW4dFVaa204X1dXTGtBS0pxR2RUR1E4dkE");   //get spreadsheet by id
SpreadsheetApp.setActiveSpreadsheet(ss);                                            //get active spreadsheet
var cal=CalendarApp.getCalendarById("_qMPDrbdlAAEgLlc2wfBUw@bmsinfoline.com");      //get calendar by id
var sheet = SpreadsheetApp.getActiveSheet();                                        //get acive sheet
 var d1 = new Date("January 1, 2013");                                               //get dates
var d2 = new Date("July 13, 2013");  
var events = CalendarApp.getEvents(d1, d2);

for (var i=0;i<events.length;i++) {

 var details=[[events[i].getLocation(), events.length]];
  // var details = [[events.length]];
 var row = i+1;
var range=sheet.getRange(row+1,1,1,2);

 range.setValues(details);
Logger.log('Number of events: ' + events.length);

} }

4

1 回答 1

0

请查看其他答案,了解如何从日历中检索事件并将其正确写入电子表格。

从那里我建议您对“资源”列上的数组进行排序,并在该列的内容发生变化时播种中间结果。这样,您将清楚地了解每个资源对应的所有事件。数组排序非常简单,如下所示:

dataArray.sort(function(x,y){
  var xp = x[col-1];// col is the index number of the column where you put the ressource data
  var yp = y[col-1];
  return xp == yp ? 0 : xp < yp ? -1 : 1;
  });

当然,如果您希望能够有不同的数据表示,您也可以在写入工作表后执行此操作...为什么不为每个演示文稿创建一个新工作表...由您决定;-)

于 2013-06-27T11:42:12.970 回答