Google Apps Script(GAS)是由Google提供的應用程式開發平台。使用GAS,可以利用如HTML和JavaScript等常見的Web語言,來自動化Gmail和Google試算表等Google服務。
本文將簡單介紹GAS是什麼,以及它有什麼應用,並會提供在Google試算表上自動化處理的範例程式碼。
GAS的主要特點包括:
- 只要有Gmail帳號,誰都可以免費使用。
 - 開發環境無需設置,很快就能開始。
 - 使用JavaScript語法,易於學習。
 - 具有記錄巨集功能,能進行無程式碼開發。
 
GAS的應用例子
- 在Google服務上自動化處理
 - 與外部服務連接
 - 開發Web應用程式
 
使用GAS的注意事項
- 不能操作本地文件,所有文件必須保存在Google雲端硬碟上。
 - 執行時間有限制,每次執行最多6分鐘,自定義函數執行時間最多30秒。
 
GAS的開發方式
- 容器綁定型:開發與特定Google服務(如試算表)相關的程式。
 - 獨立型:開發與Google服務無直接關聯的獨立程式。
 
開始使用GAS
容器綁定型
- 開啟適用的Google服務,如試算表,選擇擴充功能中的「App Script」。
 - 確認程式碼編輯畫面,並在指定區域編寫程式碼。
 - 更改程式名稱並保存。
 - 執行程式碼,確認執行結果。
 
獨立型
- 開啟Google雲端硬碟,選擇「新建」中的「Google App Script」。
 - 按容器綁定型方法進行編寫和執行程式。
 
GAS範例程式碼:每日任務自動通知
此範例將從Google試算表的任務列表自動通知至指定聊天工具 Chatwork,根據每日或每月的頻率顯示任務。
- 在試算表中創建任務表。
 - 開啟App Script,編寫以下程式碼:
 
function main() {
  const token = 'your_token';
  const roomId = 'your_room_id';
  const accountId = 'your_account_id';
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sh = ss.getActiveSheet();
  const values = sh.getDataRange().getValues();
  values.shift();
  for (const value of values) {  // 處理每行資料
    const taskName = value[0];
    const frequency = value[1];
    const deadline = value[3];
    if (frequency === '每日') {
      addTask(token, roomId, accountId, taskName, deadline);
    } else if (frequency === '每月') {
      let date = new Date(deadline.getTime());
      date.setDate(deadline.getDate() - 3);
      date = Utilities.formatDate(date, 'JST', 'yyyy/MM/dd');
      const today = Utilities.formatDate(new Date(), 'JST', 'yyyy/MM/dd');
      if (today === date) {
        addTask(token, roomId, accountId, taskName, deadline);
      }
    }
  }
}
function addTask(token, roomId, accountId, taskName, deadline) {
  const limit = (deadline.getTime() / 1000).toFixed();
  const params = {
    headers: { 'X-ChatWorkToken': token },
    method: 'post',
    payload: {
      body: taskName,
      limit: limit,
      to_ids: accountId
    }
  };
  const url = 'https://api.chatwork.com/v2/rooms/' + roomId + '/tasks';
  const result = UrlFetchApp.fetch(url, params);
  console.log('Result: ' + result.getResponseCode() + ' ' + result.getContentText());
}
- 編輯程式碼中的API憑證和相關ID,保存並執行。
 
設定定時觸發器
設定程式的執行頻率來自動化通知過程。
總之,GAS是一個功能強大的工具,不僅易於上手,也能與多種Google服務和外部API連接,自動化日常工作。希望本文能幫助你更好地了解GAS,並開始使用它來提升工作效率。