GoogleAppScript-改造你的Google試算表-1

Sean Yeh
Web Design Zone
Published in
12 min readFeb 8, 2023

--

Mactan, Cebu, Philippines, photo by Sean Yeh

If you would like to see the article in English, please go to the following page.

什麼是GoogleAppScript

Google App Script (簡稱GAS)是一個由 Google 提供的腳本引擎,用於開發基於 Google Workspace 的應用程式。

GAS可以使用 JavaScript 編寫其程式語言,它允許開發人員利用 JavaScript 語言建立Google 試算表、Google 表單、Google 文件和其他 Google 應用程式的自動化工具和應用程式。它具備以下幾項優勢:

簡單易用:由於GAS是建基於JavaScript 程式語言,JavaScript是非常通用的程式語言,對於大部分的開發人員來說具有相當簡單的學習曲線。

具備整合性:GAS可以與 Google Workspace 中的諸多服務整合使用,例如將Google 的Gmail、日曆、雲端硬碟以及Google 表單,Google 試算表,Google 文件等服務整合使用。

擴展 Google 應用程式:GAS可以擴展並自動化Google 應用程式,並且與多種 Google 服務的 API以及第三方 API 串接。例如 YouTube API、Google Maps API 等等,甚至可以用來開發自己的 Google 應用程式。從擴展Google 服務這一個方面來看,它的角色很像MicroSoft的VBA之於Office辦公室軟體。

可運作於雲端伺服器:GAS可以在Google的伺服器上面運作,並且可以直接存取位於Google伺服器上面的資料,如此設計可以避免本機端伺服器硬體效能上的瓶頸,並可以隨時隨地進行開發。

隨時隨地開發與部署:由於GAS是在Google的伺服器上面運作,因此編寫完畢的程式碼可以直接在瀏覽器上面執行,開發者可以隨時隨地不受地理位置限制的在任何有網路的地方進行開發、執行與除錯。

免費:最後,使用GAS是免費的,不需要任何額外的費用。

GAS的用法:以Google試算表為例

前面提到,Google App Script可以與 Google Workspace 中的諸多服務整合使用,

其中Google 試算表的功能和介面與Microsoft Excel相似,可以用表格來儲存各項數值與公式,產稱圖表,甚至於可以匯出與匯入不同試算表檔案格式。因此,我們有時候會讓Google 試算表扮演資料庫的角色。若輔以Google App Script的使用,撰寫程式來將日常生活的瑣碎工作進行自動化處理,可以增加工作效率。因此,我們選擇Google 試算表來說明Google App Script的一些常用的方式與語法。

安裝Google App Script套件

再開始撰寫程式之前,要先確立Google App Script套件已經安裝(如下圖一)。Google App Script套件為預設的應用程式,如果無法找到該套件的話,就必須手動進行安裝(如下圖二)。

先進入雲端硬碟,點擊「新增|更多」,查看是否已經可以看到Google App Script套件的選項?

圖一

找到這個選項就表示已經安裝了,若找不到Google App Script的選項,需要從「新增|更多|連結更多應用程式」進入安裝。

圖二

Google App Script的開發環境

從雲端硬碟進入,點擊「新增|更多|Google App Script」之後,就可以看到下面的畫面。這是Google App Script的開發環境,又稱為「指令碼編輯器」。Google App Script的開發環境會針對不同的變數、保留字等等顯示不同的顏色,使用起來與一般IDE一樣。

開發環境UI介面

開發環境可分為上方、左邊與中間三個區塊:

  • 上方,為專案名稱、部署按鈕。
  • 左邊的選單為專案的設定列以及檔案清單。設定列可以設定與此專案相關的各項功能、觸發條件等;檔案清單可以建立的檔案格式有指令碼(.gs)檔以及html檔兩種。
  • 中間部分則是指令碼的編輯區,開發者可以在這裡撰寫指令碼。緊貼著編輯區的上方則是快速功能列,供開發者進行存檔、執行、偵錯等。

建立Web應用程式

Google App Script 具備兩種運作模式,第一種是附屬於 Google Workspace 服務(例如文件、試算表等),另一種則為獨立檔案運作,並以網路應用程式的形式發布,讓專案可在網路上運作。

因此,在建立Google App Script 專案時有兩種方式:

  1. 先建立Google試算表(或其他的Google App應用程式),再從中開啟指令碼編輯器。這種方式撰寫的指令碼,是附屬於Google Workspace 服務。如下圖中綠色icon的地方。
  2. 可以從雲端硬碟中直接新增Google App Script 檔案。新增的檔案會作為獨立檔案運作。如下圖中藍色icon的地方。

在Google App Script 專案開發過程中,必須透過Google App Script 的API與各種Google App 應用程式進行互動。每一種應用程式的操作與使用方式都不一樣,因此使用上也會不大一樣。Google App Script針對不同的Google應用程式提供了各種API讓開發者可以方便的呼叫使用。

Google App Script藉由類別對應用程式進行操作,不同的應用程式皆有不一樣的類別名稱,例如雲端硬碟的類別為DriveApp、Google文件的類別為DocumentApp等等。而今若想要透過Google App Script 與Google 試算表進行互動的話,就需要懂得SpreadsheetApp的操作方式。以下介紹Google 試算表裡面幾個常用的操作方法。

操作Google試算表

以下介紹如何建立新的試算表、取得該試算表的資訊或者是開啟已經存在的試算表,以便於進行後續的操作。

建立試算表

若要透過Google App Script 建立試算表可以使用下面幾個指令:

create(name)

SpreadsheetApp裡面的create方法可以讓我們新建立一個Google試算表。如下面示範,create的參數為試算表的名稱。

function myFunction() {
var ss = SpreadsheetApp.create('New Test Sheet');
Logger.log(ss.getUrl());

}
New Test Sheet

create(name, rows, columns)

如果我們不僅想建立一個新的Google試算表,還希望這個試算表裡已經預先指定了欄數和列數,那麼可以使用以下方法。

這個方法不僅可以讓我們建立一個新的Google試算表,並在create參數中增加列數和欄數,還可以在這個新試算表中預先指定適當的欄數和列數。

function myFunction() {
var ss = SpreadsheetApp.create('New Test Sheet2',30,20);
Logger.log(ss.getUrl());

}

註:在上面的式子中可以看到下面這一行,透過Logger可以顯示出我們想要的料,它的作用相當於JavaScript中console的功能。其中 ss.getUrl() 可以取得新建立試算表的路徑位置。

Logger.log(ss.getUrl());

產出的試算表(如下圖)裡已經預先指定了20欄(從A到T)和30列(1到30)。

New Test Sheet2

取得試算表資訊

getUrl()

在前面的程式碼中,我們都會用到下面的 Logger.log() 。在這個裡面有一個ss.getUrl() ,透過它可以取得Google試算表的資訊。

Logger.log(ss.getUrl());

下面方式可以取得試算表的網址資訊:

function myFunction() {
var ss = SpreadsheetApp.create('New Test Sheet',30,20);
url = ss.getUrl()
Logger.log(url);

}

網址的資訊會顯示在「執行紀錄」的(下圖)位置:

getId()

除了取得試算表的網址資訊外,如果要取得試算表的id資訊,可以使用下面方式:

function myFunction() {
var ss = SpreadsheetApp.create('New Test Sheet',30,20);
Id = ss.getId()
Logger.log(Id);

}

執行後,可以得到一串試算表的id資訊。

getName()

它可以取得試算表的名稱資訊。

function myFunction() {
var ss = SpreadsheetApp.create('New Test Sheet',30,20);
name = ss.getName()
Logger.log(name);

}

執行結果,在「執行紀錄」的地方會出現試算表的名稱(New Test Sheet)的資訊。

日後,我們可以透過試算表的網址或者是試算表的id,來對試算表進行操作。

開啟試算表

如何打開已建立的試算表?我們需要一種明確指定要打開哪個試算表的方法。之前我們透過 getUrl() getId() 取得試算表的網址和ID,有了這些資訊,我們就可以用下面介紹的方式打開試算表。

openById(id)

SpreadsheetApp.openById(id) 是 Google App Script 的一個函式,它允許我們使用唯一識別碼 (用 id 參數表示) 打開 Google試算表。該函式會返回一個 Spreadsheet 作為對象,提供後續瀏讀取算表上面的資料。

因此,只要提供試算表的id作為參數,可以透過openById函式來開啟試算表。

function myFunction() {
var ss = SpreadsheetApp.openById('試算表的id');
Logger.log(ss.getName());
}

執行上面的程式碼會顯示出對應id的試算表名稱(如下圖)。

openByUrl(url)

SpreadsheetApp.openByUrl(url) 是另一個 GAS函式,它允許您使用其 URL (網址) 打開 Google試算表。URL 由 url 參數表示。該函式一樣會返回一個 Spreadsheet 對象,提供後續瀏讀取算表上面的資料。

只要提供試算表的網址作為參數,就可以透過openByUrl函式來開啟試算表。

例如下列程式碼,與先前的 openById 程式碼的唯一不同之處在於,把 openById 改為 openByUrl,而輸入的值也必須改為網址。執行此程式碼仍會顯示出試算表的名稱。

function myFunction(){
var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/id/edit#gid=0>');
Logger.log(ss.getName());
}

結語

到目前為止,我們已經可以透過 Google App Script 建立Google試算表,這是一種很方便的工具,可以協助我們自動化處理資料。在使用過程中,我們可以透過設定參數,建立自己需要的試算表樣板。此外,我們還可以進行開啟檔案的活動,對於已經建立的Google試算表進行編輯或修改。

在 Google App Script 中,我們可以使用 openById 或 openByUrl 這兩種方法來開啟試算表,前者是透過試算表的 ID 來開啟,後者則是藉由試算表的 URL 來開啟。兩者的用法大致相同,只是在參數上有所不同。

由於篇幅的限制,先在這裡停筆。下一篇文章我們將會詳細介紹如何對Google 試算表內的儲存格進行操作。這將是一個非常重要的階段,因為我們將要進行的操作,將會是對Google試算表中的數據進行處理、分析以及統計,以幫助我們更好地了解數據。如果您對 Google App Script 有興趣,那麼下一篇文章將會是您不容錯過的重要內容。

--

--

Sean Yeh
Web Design Zone

# Taipei, Internet Digital Advertising,透過寫作讓我們回想過去、理解現在並思考未來。並樂於分享,這才是最大贏家。