Google Apps Script,是Google提供的Serverless的服務,讓你不需要自己架後端,就可以擁有後端和類資料庫的功能,而且是免費使用,看了是不是很心動呢?但是容筆者提醒一下,俗話說的好,免錢的最貴,雖說是免費但還是有許多限制,諸如每日呼叫次數、執行時間等等,拿來玩玩可以,用在商業可是會翻船的。
本系列文會介紹基本操作方法,要更詳細的客官只能去啃官方文件了
Google Apps Script環境建置
首先打開你的Google雲端硬碟,有兩種方式可以新增,如果你要用試算表當作資料庫使用,直接新增試算表即可

若不需要,則直接新增Google Apps Script ,找不到的話,選擇更多->連結應用程式,搜尋Google Apps Script




之後就會看到程式碼編輯介面了,沒錯!就是前端最熟悉的javascript
GAS後端如何被前端呼叫
後續會有一個發布的動作,發布完會產生一段https網址,前端呼叫的方式很簡單,對網址使用一般的GET和POST呼叫就可以了,不過GAS這邊就比較限定了,function 名稱有固定
/** * 這裡接收GET */ function doGet(e){ //e.parameter裡面放的就是傳進來的key-value var action = e.parameter.action; switch(action){ case 'foo': //do something break; } return ContentService.createTextOutput('Receive Get'); } /** * 這裡接收POST */ function doPost(e){ var name = e.parameter.name; var seconds = e.parameter.seconds; return ContentService.createTextOutput(JSON.stringify({name: name, seconds: seconds})) .setMimeType(ContentService.MimeType.JSON); }
可以看到名稱是固定的,如果要做很多事情,自己依照參數值分不同function執行比較易讀,return的部分,有三種
//字串 return ContentService.createTextOutput('string'); //HTML return HtmlService.createHtmlOutput('<p>html</p>'); //JSON 需先將object轉為json字串 return ContentService.createTextOutput(JSON.stringify(object)) .setMimeType(ContentService.MimeType.JSON);
完成程式碼後,除了儲存以外,還要進行發布



之後就可以用Postman之類的工具來測試了,記得每次修改都要重新發布一次,才會生效
如何Debug
Debug是很重要的一環,不然怎麼知道有沒有正常運行,既然是javascript,當然也支援console.log()囉,不過他不是顯示在瀏覽器的的開發者工具,而是另外的介面,點選上方 “查看"->"Stackdriver Logging",接著點Apps Script資訊主頁,然後可以單獨測試某個function,就看到輸出了,真是一番折騰~




如何存取試算表內容
首先需要取得試算表的網址或者ID,ID在網址中間,/d/之後,/edit之前
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SpreadSheet = SpreadsheetApp.openById(id); //取得工作表 var Sheet = SpreadSheet.getSheets()[0]; var Sheet = SpreadSheetgetSheetByName(SheetName); //getSheetValues(startRow, startColumn, numRows, numColumns),從1開始 //讀取特定欄位,假設該欄位=0,回傳值會是[[0.0]] var value = Sheet.getSheetValues(1, 1, 1, 1); //讀取多欄位,假設值為A1=1,B1=2,A2=3,B2=4,回傳值為[[1.0, 2.0],[3.0, 4.0]] var values = Sheet.getSheetValues(1, 1, 2, 2); //不知道資料有多少,可以取得最後一列或欄 var last_col = Sheet.getLastColumn(); var last_row = Sheet.getLastRow(); //設定欄位 Sheet.getRange(row, column).setValue('value') Sheet.getRange(last_row+ 1, 1).setValue('A100'); Sheet.getRange(1, last_col + 1).setValue('N1');
到此為止,已經具備實現簡易後端的功能,甚至還有N個table可以操作,只要分sheet就好了,下一篇還會介紹一些更進階的功能,敬請期待~
參考來源
- 寫給純前端,讓 Google Sheets 當你的後端完成寫入功能
- Google App Script到底是什麼?
- Google 試算表 (2) – 讀取儲存格數值
- 簡易後端實作 ( Google Apps Script )
延伸閱讀