簡體   English   中英

Google Apps 腳本 - 從電子表格創建日歷事件

[英]Google Apps Script - Create Calendar Event from Spreadsheet

我在編程方面的經驗接近 0。 我想從谷歌電子表格中導入一個范圍作為數組,檢查數組中的每個值的真或假,如果為真,創建一個全天日歷事件,全天日歷事件的標題是相同的值行在不同的數組中。

例子:

桌子

  • _:5/11、5/12、5/13
  • 答:對,錯,對
  • B:對,錯,錯
  • C:對,對,對

應該在 5/11 和 5/13 上創建名為“A”的日歷事件,在 5/11 上創建名為“B”的日歷事件,在 5/11、5/12 和 5/13 上創建名為“C”的日歷事件

到目前為止,這已經奏效,但效率不高。 有人可以幫我優化嗎?

var Checked = spreadsheet.getRange("C5:I20").getValues();
var Person = spreadsheet.getRange("B5:B20").getValues();

var mon = new Date(Object(spreadsheet.getRange("C3").getValues()));
var tue = new Date(Object(spreadsheet.getRange("D3").getValues()));
var wed = new Date(Object(spreadsheet.getRange("E3").getValues()));
var thu = new Date(Object(spreadsheet.getRange("F3").getValues()));
var fri = new Date(Object(spreadsheet.getRange("G3").getValues()));
var sat = new Date(Object(spreadsheet.getRange("H3").getValues()));
var sun = new Date(Object(spreadsheet.getRange("I3").getValues()));      

for (x=0; x<Checked.length; x++) {  
  for (x=0; x<Person.length; x++) {
      var shift = Checked[x];
      var Names = Person[x];

      if(shift[0] = 1)
      eventCal.createAllDayEvent(Object(Names), mon);
      if(shift[1] = 1)
      eventCal.createAllDayEvent(Object(Names), tue);
      if(shift[2] = 1)
      eventCal.createAllDayEvent(Object(Names), wed);
      if(shift[3] = 1)
      eventCal.createAllDayEvent(Object(Names), thu);
      if(shift[4] = 1)
      eventCal.createAllDayEvent(Object(Names), fri);
      if(shift[5] = 1)
      eventCal.createAllDayEvent(Object(Names), sat);
      if(shift[6] = 1)
      eventCal.createAllDayEvent(Object(Names), sun);
      Utilities.sleep(1000)

也許這會幫助你開始:

此 function 將為底部電子表格中所有選中的行創建全天事件。

function myfunction() {
  const cal=CalendarApp.getCalendarById('id');
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getSheetByName('Sheet1');
  const rg=sh.getRange('B5:E20');
  var vA=rg.getValues();
  vA.forEach(function(r,i){
    if(r[0]) {
      cal.createAllDayEvent(r[1], new Date(r[2]), new Date(r[3]))
    }
  }); 
}

電子表格:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2025 STACKOOM.COM