Title1

Title2

Title3

4. 自製線上行事曆

一、Google Apps Script (GAS)

  1. GAS是 Google 用 Javascript 語言 擴展 Google Apps (Gmail、試算表、文件、日曆.....)及建置 WEB 應用程式
  2. GAS是一個 No Server Service 網站平台,其資源由Google提供,但有限額

二、實例介紹

  1. 假設今天想要讓他人將資料寫入我的「Google日曆」,您會怎麼做?
    開放「Google日曆權限
  2. 透過GAS把資料寫入,可依需求條件,做不同的選擇,如資料上傳即寫入或需核准才能寫入

三、實做

  1. 前台:Google表單(若要自已使用,非接案的話,可選擇它,開發速度快)
  2. 後台:Google試算表,一般來說,GAS可以佈署在「Google表單」或「Google試算表」或其它Google Apps,不過最常用的就是「Google試算表
  3. GAS的語法主要是基於JavaScript 1.6和1.7跟1.8的部分功能。
  4. 首先建立一個表單「繳費通知單」,欄位:繳費單位、繳費日期、繳費金額、備註 => 關聯 試算表
  5. 「工具/指令碼編輯器」=> 命名,更改時區
  6. 全天事件日曆建立 => 測試
    //日曆id
    var googleCalendarID = "日曆id";//請自行替換
    /*===========================================================
      title : 日曆標題
      startDate : 日曆日期
      description : 日曆內容
      color : 日曆顏色
    ===========================================================*/
    function setCalendar(title, startDate, description, color) {    
      startDate = new Date(startDate.replace(/-/g, "/"));//轉換日期格式 
         
      //透過ID取得日曆
      var cal = CalendarApp.getCalendarById(googleCalendarID);
         
      //沒有結束日期的全天事件
      var even = cal.createAllDayEvent(title, startDate, {description:description});
       
      //設定形成顏色(1~11)
      even.setColor(color);  
    }

    調用函式
     

    function myFunction() {
      var title="日曆標題";
      var startDate="2021/03/31";
      var description="測試內容";
      var color=11;
      setCalendar(title, startDate, description, color);
    }

     

  7. 取得試算表標題
    
      var ss = SpreadsheetApp.getActive();//取得試算表
      var ws = ss.getActiveSheet();//取得試算表中的第一個表
      //getRange(row, col, 列數, 欄數)
      var title = ws.getRange(1, 1, 1, ws.getLastColumn()).getValues()[0];//取得表單中文欄名

    查看變數或陣列、物件
    console.log(title);

  8. 設定觸發條件,取得填報者資料
    當提交表單表,觸發取得資料
  9. 整理資料,替換變數=>寫入日曆
    
      var data={};
      for(i in title){
        data[title[i]] = e.values[i];
      }

     

  10.