iT邦幫忙

2021 iThome 鐵人賽

DAY 30
1
Modern Web

整合 Google 服務的燃料——透過 Google Apps Script (GAS) 加速你的工作速度系列 第 30

D30 - 如何看自己需要哪篇 Apps Script 的功能?三十天 Apps Script 旅程的總整理

大家好,今天就是我們鐵人賽的最後一天了,想要在今天幫大家做個整理表,這樣也比較好找資料。如果有興趣,心路歷程在最後面,或許可以給想要寫 GAS 的人參考。

還是先講一下必要須知

考量到大部分的人沒有追連載,到這邊應該是想要快速找哪邊可以幫助你。這很重要沒錯,但也請要先了解一下 Google Apps Script 的使用情境之一——


這邊是假設一搬人行政文書使用的流程優化,如果本身就是要開發用 GAS 寫出來的產品那就另當別論

另外,在開發之前,請確認三件事——

  • 確認想要做的動作是否在官方的扣打(Quota) 內,不然要額外付費喔
  • 有程式基礎,我這邊的定義範圍是至少 Google 的 Tech Dev Guide 有刷過一遍
  • 有 Google 帳號,主要是能開 Google Workspace

文章列表

首先,這幾天 Google Apps Script 的清單如下——

GAS 基本操作

主要內容有提到 GAS 的基本介面、Trigger 與 debug 方式之一(Log)。

日期 主題 內容概述
D1 誰適合使用 Google Apps Script (GAS)呀? 基本範圍與文章目標族群界定
D2 Google Apps Script (GAS) 環境設定與設定打包 基本操作介面熟悉與功能大致範圍界定
D3 如何透過 Google Apps Script 的 Trigger 來建立一個自動開啟、調整與關閉的 Google 表單? Trigger 介紹

Google Form

主要有提到怎麼樣創造、讀取、複製與更動表單。更細節有講到自動開啟或關閉(Trigger)、連結 Google Sheet 並寄出 Email 和連動 Google Calendar

日期 主題 內容概述
D3 如何透過 Google Apps Script 的 Trigger 來建立一個自動開啟、調整與關閉的 Google 表單? 創造 Google From 並搭配 Trigger 的自動化案例
D4 如何透過 Google Apps Script 來整合 Google Form / Google Sheet 並自動寄出客製的 Email? Google 表單後續流程接續自動化寄信的案例
D11 (ㄧ)複製並客製你的 Google Form 用 GAS 依照範本寫 Google Form 的案例
D12 (二)大幅度客製你的 Google Form 用 GAS 依照範本客製 Google Form 的案例,有針對細部元素特別說明
D13 (三)一次搜集很多 Google Form 內的回應 用 GAS 搜集多份 Google Form 內回應的案例

Gmail

Gmail 的部分,主要是有寄信、依據分類寄出客製化信件、寄出 HTML 與跟 Google Calendar 連動,最後還有股票價格通知信。

日期 主題 內容概述
D4 如何透過 Google Apps Script 來整合 Google Form / Google Sheet 並自動寄出客製的 Email? 針對不同收件人的寄件方式介紹
D5 如何用 Google Apps Script 搭配 HTML 客製 Google 表單的回應信件? 整合 Google Form 與信件的案例
D6 如何用 Google Apps Script 將 Google 表單收到的時間同步在 Google Calendar 上? 將 Google Form 透過 Sheet 整合一份 Calendar 的案例
D7 如何用 Google Apps Script 將 Google 表單的回應即時同步在多個行事曆上? 將 Google Form 透過 Sheet 整合多份 Calendar 的案例
D25 (二)結合股票價格通知與信件 透過 Gmail 寄送 Google Sheet 中資料提示的案例

Google Calendar

Google Calendar 的部分,主要都是跟 Google Sheet 結合,不管是列出事件或是生成新的行程。

日期 主題 內容概述
D6 如何用 Google Apps Script 將 Google 表單收到的時間同步在 Google Calendar 上? 將 Google Sheet 中的資料同步到一份 Google Calendar 的案例
D7 如何用 Google Apps Script 將 Google 表單的回應即時同步在多個行事曆上? 將 Google Sheet 中的資料同步到多份 Google Calendar 的案例
D8 如何用 Google Apps Script 將 Google Calendar 上的事件與更新全部列出到 Google Sheet 上? 將 Google Calendar 上的資料同步到 Google Sheet 上的方式

Google Drive

Google Drive 部分,則有列出 Google Drive 的資料夾與檔案的相關資訊(名稱、ID、大小、預覽與權限等)、更改名稱與轉移權限、移動與刪除檔案。

日期 主題 內容概述
D9 (一)列出所有檔案 ID 與相關資訊 給予 Google Drive 資料夾 ID 並讀出裡面資訊的案例
D10 (二)自動列出所有檔案並設定權限 給予 Google Drive 資料夾 ID 並讀出裡頭檔案權限並更改
D22 (三)一次看完所有檔案的預覽 將檔案的預覽圖透過 Google Slides 一次性地顯現出來的案例

Google Docs

Google Docs 的部分,有提到架構的講解、內容元素的層級,以及怎麼創造文件、依據範本複製文件與內部物件的讀取、客製與刪除。

日期 主題 內容概述
D14 (一) 以 NDA 為例的大架構與簡單複製 Google Docs 的基本架構,與從 Google Sheet 中擷取資料並複製範本更改多份 Google Docs 的案例(Header / Footer / Name)
D15 (二)快速生出大量寄件信封資料 從 Google Sheet 中擷取資料並複製範本更改多份 Google Docs 的案例(Body Content)
D16 (三)Element 的讀取與創造 用 GAS 讀取與創造 Google Docs 內部一個個段落、表格與圖片等的案例
D17 (四)Element 的刪除與層級關係 Google Docs 的層級關係,以及用 GAS 刪除與精細選擇 Google Docs 內部一個個段落、表格與圖片等的案例
D18 (五)Element 的更新 針對 Google Docs 中已有物件內容進行更新的方式
D19 (六)更改特定內容格式的 Attribute 操作技巧 針對 Google Docs 中的物件屬性(外型)調整的方式

Google Slides

Google Slides 的部分,則是從簡報的架構、創造與複製範本開始,有講到更動簡報的內容、更改或讀取特定內容以及新增與放入圖表等。

日期 主題 內容概述
D20 (一)架構拆解與更改文字 Google Slides 的架構,以及如何針對已有的內容文字進行讀取與更改的案例
D21 (二)自動化爲鐵人賽的每一篇貼文生封面圖 依照範本投影片更改並生成多份 Slide 的案例
D22 (三)一次看完所有檔案的預覽 Google Slide 與其他資料源如 Google Drive 等連動的案例
D23 (四)ㄧ次抓出所有簡報中的「特定文字」與備註 Google Slide 中針對特殊元件、文字進行讀取並放到 Google Sheet 上的案例
D24 (ㄧ)自動化創造圖表 在 Google Slide 上放入 Google Sheet 中圖表的案例

Google Sheet

Google Sheet 的部分,除了創造、複製之外,就是有取得很多試算表內的資料,並進一步處理像是創造圖表,或是將結果用信件做通知。

日期 主題 內容概述
D4 如何透過 Google Apps Script 來整合 Google Form / Google Sheet 並自動寄出客製的 Email? 從 Google Sheet 中寄信給不同收件人的案例,最基礎的 Google Sheet 架構在這一篇
D6 如何用 Google Apps Script 將 Google 表單收到的時間同步在 Google Calendar 上? 從 Google Sheet 中同步 Google Calendar 的案例
D7 如何用 Google Apps Script 將 Google 表單的回應即時同步在多個行事曆上? 從 Google Sheet 中同步到多份 Google Calendar 的案例
D8 如何用 Google Apps Script 將 Google Calendar 上的事件與更新全部列出到 Google Sheet 上? 在 Google Sheet 上抓到 Google Calendar 上的資料
D14 (一) 以 NDA 為例的大架構與簡單複製 用 Google Sheet 的資料創造 Google Docs 的案例(Header / Footer / Name)
D15 (二)快速生出大量寄件信封資料 用 Google Sheet 的資料創造 Google Docs 的案例(Body Content)
D23 (四)ㄧ次抓出所有簡報中的「特定文字」與備註 用 Google Sheet 列出 Google Slide 中的特殊物件上的案例
D24 (ㄧ)自動化創造圖表 圖表講解與用 Google Sheet 創造圖表放到 Google Slide的案例
D25 (二)結合股票價格通知與信件 將 Google Sheet 中的資料更新/提示寄送的案例
D26 (三)大量複製試算表並留下連結 將 Google Sheet 的資料表複製給不同使用者的案例(在「要整理面試官打的分數」的情境下)
D27 (四)蒐集大量試算表中的回應 將多份 Google Sheet 中的資料整理到一份的案例(在「要整理面試官打的分數」的情境下)

GAS 進階操作

  • Add-On、HTML
日期 主題 內容概述
D5 如何用 Google Apps Script 搭配 HTML 客製 Google 表單的回應信件? 用 GAS 寄出 HTML 的案例
D28 (ㄧ) 變成可以 Add-On 似的 UI 將 GAS 的功能變成可以按的 UI
D29 (二)變成 WebApp / HTML Output 將 GAS 的功能變成可以互動的 HTML
D30 三十天 Apps Script 旅程的總整理 今天這篇總整理

回顧這三十天

好,接下來則是一些心路歷程,分享給想踏入 GAS 坑的夥伴。

回看這三十天鐵人賽的文章,平均每篇費時兩個小時,字數在五千上下,要說的話就是,超級累啊啊啊啊啊啊。

過程中一度很想放棄,除了在看到 D20 前後時的文章大概都只有十來人閱讀時,加上工作都忙到八九點,回家都十點了再加兩個小時,總是壓死線寫出,中間也發生了不少是,像是這篇就是帶家人到急診室時打的,切記勿穿短褲拖鞋到急診室,超冷。以及忙碌中對大綱不一定有靈感,中間有幾度迷航,甚至出文章的品質下降,都是假日回來優化。但所幸有個轉折,就是 D15 快速生出大量寄件信封資料 這篇。因為那時候剛好同事需要幫忙,就用這樣的範本協助慢慢複製貼上的過程,看到能幫同事省時間,是蠻開心的。這篇同時也是自己最喜歡的文章。

不過,GAS 真的挺方便的,像是今天內容的 Markdown 表格其實就是用 GAS 幫我省了些時間。

三十天的過程中,主要的進步有幾份——

  1. 文字上,比較會補起脈絡。
  2. 視覺上,也比要會考慮排版,像是要生個封面圖等等(歡迎參考 (二)自動化爲鐵人賽的每一篇貼文生封面圖)。
  3. 寫扣上,同樣複雜度的可以從原本的三十分鐘縮短到大概十五分鐘,此外因為更熟悉了,可以避開些不必要的雷。
  4. 錄影速度快很多,從一開始影片中沒有主體與對照,到後來比較知道要用分割畫面。
  5. 想案例的速度快很多,一開始想要用哪個案例時會卡個半小時去耍廢,後來大概十分鐘就可以決定要用哪個案例。
  6. 抓架構上,讀 Reference 抓出結構與架構的速度也快很多。之前少年的開發時期,在實作時大多都憑印象與 Stackoverflow 來開發,現在則可以快速掃過 Reference 並抓出架構。當然 Google Apps Script 的 API 文件很清晰也是能快速上手的原因之一。

儘管每次回頭看自己寫的文章,總是會想揍自己,大概跟回看國高中作文差不多等級,或是在看自己之前的 Code 那樣。所以也幫自己下了幾個坑——

  • 將前期文章的視覺做優化,不管是錄影上還是
  • 將所有文章的 API 架構補起。因為上面有提到說之前開發時比要不讀 Reference ,但現在知道抓其中的架構很重要,所以會想補起其他的架構
  • 將所有文章彼此的大綱補關聯串起,還有很多想寫的文章,包括 Gmail、Google Calendar 與透過 GAS 爬蟲獲取外部資料等細節。或許哪天會偷偷調整架構哈。

本身來說,我覺得用 GAS 對有需求的人來說,算是個簡單上手的方式,Google 的產品都蠻有品質的,看到後端的程式碼也往往會令人讚嘆,甚至會發現些工程師彩蛋功能像是 developer metadata。過程算是會有些樂趣,不過如果能早點發想完大綱等,就不會其實白天如坐針氈,腦袋不是會飛去想到底要寫什麼。總之,爬這座山的內容並不難,難的是每天要用合適的案例傳達給讀者。


那以上就是我們 GAS 的三十天,想謝謝每一位讀者。鐵人賽也到了終點,希望這些內容對大家有所幫助。如果還有問題,透過留言之外,也可以到 Facebook Group,想開很久這次鐵人賽才真的開起來,歡迎來當 Founding Member。如果不想錯過可以訂閱按讚小鈴鐺(?),也歡迎留言跟我說你還想知道什麼做法/主題。我們有緣再見。


上一篇
D29 - 如何打包 Apps Script 的程式碼?(二)包成 HTML 網頁與或 API
系列文
整合 Google 服務的燃料——透過 Google Apps Script (GAS) 加速你的工作速度30

1 則留言

1
威利斯
iT邦新手 4 級 ‧ 2021-10-01 08:25:06

謝謝您用心整理介紹,受用良多!
/images/emoticon/emoticon12.gif

我要留言

立即登入留言