AI 時代的輕量級後端:當 Vibe Coding 遇上 Google Sheets
在 AI 輔助開發的「Vibe Coding」時代,對於剛入門的開發者或想快速驗證想法的創作者來說,傳統資料庫的架設往往過於繁瑣,這篇教學將分享如何將熟悉的 Google Sheets,轉化為強大的雲端資料庫,用最輕鬆的「Vibe」完成數據存取。
快速導覽:
為何選擇 Google Sheets 作為「第一個」資料表?
Google Sheets ( Google 試算表、Google Sheets ) 不僅是一個線上表格工具,它的本質是一個基於雲端的二維資料表,對開發者而言,具備了即時儲存、多人協作以及強大的視覺化介面,只要透過 Google Apps Script ( GAS ),就可以輕鬆地將它變成一個網頁或 App 的後端儲存中心。
為什麼要透過 Google Apps Script ( GAS )來讀取,而不是直接存取?
- 數據格式化:GAS 能將試算表中的數據,轉換成前端最容易處理的 JSON 格式。
- 提高安全性:透過 GAS 管理將複雜的權限驗證邏輯,避免前端暴露試算表 ID 或敏感金鑰。
- 客製化邏輯:在 GAS 進行資料篩選、排序或初步計算,減少前端的負擔。
- 極簡部署:GAS 部署後會產生一個專屬的 Web App URL,使用時就像呼叫 API 一樣簡單。
使用 Google Sheets 作為資料庫的優缺點
如果要把 Google Sheets 作為資料庫,需要透過 Google Apps Script ( GAS ) 存取 Google Sheets,所以必須考量平台的「配額與執行限制」,例如:每日 URL Fetch 次數有上限,且單次腳本執行時間通常限制在 6 分鐘內 ( Google Workspace 用戶為 30 分鐘 ),這表示如果資料運算過於繁重或存取過於頻繁,可能會觸發逾時錯誤或配額耗盡,下方列出 Google Apps Script 的使用限制:
| 一般帳戶 | Workspace 帳戶 | |
|---|---|---|
| 指令碼執行時間 ( 單次 ) | 6 分鐘 | 30 分鐘 |
| URL Fetch ( 每日 ) | 20,000 次 | 100,000 次 |
| 同時執行數量 ( Concurrent ) | 30 次 | 30 次 |
| 每日總執行時間 | 90 分鐘/日 | 3 小時/日 |
除了 GAS 的限制,下方列出 Google Sheets 的資料庫優缺點:
優點
- 完全免費:對於個人專案或小型工具,不需要負擔伺服器或資料庫授權費用。
- 視覺化介面:不需要安裝資料庫管理軟體,直接打開瀏覽器就能查看、編輯與篩選資料。
- 門檻極低:只要會使用 Excel 或 Google Sheets,就已經理解了資料的基本結構。
- 內建協作:方便多人同時檢視數據,且具備完整的版本修訂歷史。
缺點
- 效能限制:當資料量太多時 ( 幾千筆以上 ),讀取與寫入的速度會明顯下降。
- 並行處理弱:不適合處理極高頻率、同時發生的大量寫入請求。
- 安全性不足:雖然 GAS 能有基本安全性防護,但整體仍缺乏正規資料庫的安全性管控,若權限設定不當,資料容易暴露且被修改。
- 功能限制:不支援複雜的關聯查詢或進階的資料庫索引功能。
什麼時候該用 Google Sheets?
並非所有專案都適合「拿試算表當資料庫」,但在特定的開發階段與應用類型中,它能發揮意想不到的效率。以下是幾個最能展現其優勢的實踐情境:
- 快速原型 ( MVP ):在產品初期快速驗證功能,無需花時間架設複雜後端。
- 個人小工具:例如記帳軟體、個人書單或簡單的待辦事項。
- 內部管理系統:公司內的小型問卷、報名系統 or 靜態資訊展示。
- 低流量應用:每天存取次數在幾百次內的輕量級服務。
使用 Google Sheets 的注意事項
在開始動手寫程式之前,有些關於資料庫維護的細節若沒處理好,可能會讓資料管理變得混亂。以下整理了幾個實戰中必須留意的注意事項:
- 權限控管:務必確認試算表權限,不要將敏感資料放在公開的表格中。
- 定義欄位:通常會把第一列作為欄位名稱 ( Header ),且避免使用特殊字元。
- 確定欄位:因為寫入資料時可能會把原始資料覆蓋,因此要確認儲存的欄位位置。
- 備份數據:定期將重要資料匯出存檔。
準備工作 1:建立帳號密碼與資料的 Google Sheets
既然要使用 Google Sheets 作為簡易資料庫,就一定要先建立對應的檔案,這個範例會分別建立「帳號密碼」和「資料」的 SpreadSheet,透過不同權限的管控,讓「只有帳號密碼」的使用者才可以操作「資料」,藉此提高安全性,參考下方步驟建立這兩份試算表:
第一份:帳號密碼 SpreadSheet
在 Google 雲端硬碟中建立一份 SpreadSheet 存放帳號密碼,第一欄 ( A 欄 ) 是帳號,第二欄 ( B 欄 ) 是密碼,工作表名稱是「sheet1」( 名稱可自訂,程式裡面撰寫自訂名稱即可 ),可預先填入一些帳號密碼進行測試。
接著點擊右上方的「共用按鈕」,特別注意「共用權限」,因為是帳號密碼表,所以權限請保持「只有具備存取權」的使用者才可以編輯或操作,完成後可以用筆記本紀錄複製的網址。
第二份:資料 SpreadSheet
在 Google 雲端硬碟中建立一份 SpreadSheet 存放資料,可以保持單純空白的內容或自行新增一些內容。
接著點擊右上方的「共用按鈕」,因為要讓網頁的應用程式可以讀寫資料,所以必須將共用權限設定為「知道連結的任何人」都可以「編輯」,完成後可以用筆記本紀錄複製的網址。
準備工作 2:建立操作 Google Sheets 的 Apps Script
建立了帳號和資料的 Google Sheets 之後,就要開始透過 Google Apps Script 產生網頁應用程式,讓網頁可以操控資料,如果對於 Google Apps Script 不了解,可以先參考下方教學 ( 從頭閱讀到「Google Apps Script 的部署方式」即可 ):
雖然可以透過 AI 從無到有撰寫 Apps Script 的程式,但對於剛入門資料庫的使用者而言也很辛苦,建議直接使用 STEAM 教育學習網的「範例程式」,搭配 AI 一起操作速度會更快,這個範例程式的功能說明如下:
- 安全機制:透過「不公開」的「帳號密碼」試算表驗證身份,確認帳號密碼後才可以操作「資料」試算表。
- 讀寫範圍:運用「字母、數字、字母數字組合」來表示儲存格範圍,例如:「
A」表示 A 列、「A1」表示單一格或「A1:C3」表示九宮格。- 資料格式:使用陣列方式寫素資料,例如:「
"a"」儲存單一格文字 a、「[["a1"],["b1"],["a2"],["b2"]]」把資料儲存到四宮格內。- 進階功能:切換工作表、刪除特定範圍、刪除指定行列、新增行列、把資料擺放在前段或末端等。
使用範例程式的方法分成兩種,分別是「純 GAS 」以及「套用 STEAM 教育學習網程式庫的 GAS」,兩個的內容方法完全相同。
範例 1、純 GAS 讀取 Google Sheets
開啟範例 GAS 連結,檔名是「GAS SpreadSheet by OXXO.STUDIO」,開啟連結之後,從左邊選擇「總覽」,接著點擊右上方「建立副本」,將檔案複製到自己的 google 雲端硬碟中 ( 自行選擇資料夾放置 )。
建立副本之後,基本上完全不需要更動內容程式,只需要把「剛剛的試算表網址」貼上,並填上指定的工作表名稱即可,儲存完成後,前往下方步驟「部署 Google Apps Script」。
範例 2、GAS 載入資料庫讀取 Google Sheets
如果覺得第一種的範例程式「太多」,也可以使用「載入資料庫」的方式,載入 STEAM 教育學習網的範例資料庫,首先在雲端硬碟的自訂資料夾中,從左上方選單裡建立「Google Apps Script」。
點擊「建立指令碼」繼續建立。
在程式碼區域,填入下方的程式碼,並把「剛剛的試算表網址」貼上,並填上指定的工作表名稱。
function doPost(e) {
const config = {
dataSsUrl: "你的資料 SpreadSheet 網址", // 權限需「所有人」可編輯
userSsUrl: "你的使用者帳密網址", // 權限限制只有自己讀取
defaultSheet: "sheet1", // 資料表的預設工作表
userSheetName: "sheet1" // 使用者權限表的預設工作表
};
try {
// 確保有資料傳入
if (!e.postData.contents) throw "No data received";
// 直接呼叫 Library 並回傳結果
return GASDatabaseforSpreadSheetbyOXXOSTUDIO.runHandler(e, config);
} catch (err) {
// 發生錯誤時回傳簡單的 JSON
return ContentService.createTextOutput(JSON.stringify({
success: false,
message: err.toString()
})).setMimeType(ContentService.MimeType.JSON);
}
}
點擊左側「資料庫」後方的「+」新增資料庫。
輸入下方指令碼 ID,點擊「查詢」後選擇最新版本 ( 最大的數字 ),點擊「新增」完成加入資料庫的動作,完成後儲存,接著前往下方步驟「部署 Google Apps Script」。
指令碼 ID:
17o1UvArffJ7XKPVm_fg7Vs0E6KW7VfQkXsZJSGTFVjmGF3h4tDyOWokA
部署 Google Apps Script
範例的 Apps Script 完成之後,下一個動作就是要將這個程式部署為網頁可以使用的程式,點擊右上角「部署」,選擇「新增部署作業」。
在彈出視窗中點擊左上方「齒輪」圖示,選擇「網頁應用程式」。
將「誰可以存取」的權限設定為「所有人」( 「我的身份」就是你自己的帳號 ),說明文字可自由填寫。
接著點擊「部署」,第一次部署會出現「要求存取權」的提示,點擊「授予存取權」。
點擊「Advanced」展開繼續的選項,點擊「Go to....」進行下一步。
點擊「Continue」按鈕繼續部署。
部署完成後,就會產生一串網址,屆時就可以在網頁裡面使用這串網址操控 Google Sheets 資料。
Vibe Coding 使用 Google Sheets 讀寫資料
有別於正規的資料庫,因為 Google Sheets 是透過自己的 Apps Script 進行操控,所以在讀寫檔案的 API 方法也必須自己撰寫,不過幸好目前是 AI 發達的時代,透過 Vibe Coding 的方式,只要提供 AI 對應的 API 文件或是程式碼,AI 就可以從中抓取對應的方法使用,下方是 STEAM 教育學習網讀取 Google Sheets 的 API 說明文件,可以先下載到自己的電腦中 ( 可以存檔為 .txt 或 .md )。
有了說明文件後,接著就上傳這個說明文件,並透過下方提示詞,請 AI 產生將 Google Sheets 作為資料庫的簡單網頁。
請幫我產生一個簡單的網頁,具有下列功能:
- 我的網頁會透過 GAS 讀取指定的 Google Sheets,GAS API 用法請參考附件的說明文件。
- 只使用基本的 HTML 和 JS,不要有其他的框架或套件。
- 套用的 GAS 網址會寫在原始碼中。
- 網頁流程:
> a. 使用帳號密碼登入。
> b. 登入後的畫面分成上下兩部分,上半部是讀取,下半部是寫入。
> c. 上方讀取部分有「試算表名稱」和「儲存格範圍」欄位和「讀取」按鈕,點擊按鈕後會讀取範圍資料並顯示。
> d. 下方寫入部分有「試算表名稱」和「儲存格範圍」和「資料」欄位,以及「寫入」「寫在最下方」「從頭插入」「清除範圍內容」按鈕。
> 最下方有狀態提示資訊。
完成後下載 HTML,用程式碼編輯器或文字編輯器開啟 HTML 原始碼,把假資料的位置替換成剛剛 GAS 部署的網址。
接下來只要參考「使用 GitHub 部署你的網頁作品」的教學步驟,把網頁上傳到 Github,開啟網頁,登入剛剛設定的帳號密碼,就可以透過 Google Sheets 讀寫資料囉!
小結
利用 Google Sheets 作為資料庫,是進入 Web 開發世界的絕佳敲門磚,當 Vibe Coding 就可以真正讓「寫程式」這件事回歸到「解決問題」的本質,不需要被複雜的基礎架構所綁架,可以輕鬆開發出許多屬於自己的小型應用,不過如果開始進行比較複雜的開發,仍然得遷移到更專業的資料庫喔!
延伸閱讀
Vibe Coding 基礎入門
核心技術知識
樣式與視覺設計
開發、下載與部署
資料庫與安全防護
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~