特色
- 支援多種驗證方式 — OAuth 2.0(使用者個別存取)、Service Account(伺服器間通訊)、API 金鑰(公開資料)
- 流暢的 API — 以 method chain 直觀地操作資料
- 整合 Laravel Collection — 將 Google Sheets 資料轉換為 Laravel Collection,便於陣列處理
- 可擴充性 — 透過 macro 系統為 facade 新增自訂方法
- Google Drive 整合 — 管理與列出試算表
常見使用情境
- 使用者儀表板 — 顯示與操作 Google Sheets 資料
- 資料匯入/匯出 — 在 Laravel 應用與 Google Sheets 間搬移大量資料
- 自動報表產生 — 以程式產生與更新報表
- 多使用者應用程式 — 使用者各自管理自己的 Google Sheets
設計理念
本套件的主要目標是 從 Google Sheets 讀取。與其在讀取前指定細節條件,本套件設計上先以 Laravel Collection 取得所有資料,之後再於 Laravel 端處理資料。系統需求
- PHP >= 8.3
- Laravel >= 12.0
安裝
1
以 Composer 安裝
2
發佈設定檔
3
啟用 Google API
於 Google Cloud Console 啟用以下 API:
- Google Sheets API
- Google Drive API
4
選擇並設定驗證方式
從 3 種方式擇一設定:
- Service Account — 適合伺服器間通訊、自動化任務
- OAuth 2.0 — 適合使用者個別存取
- API 金鑰 — 僅適用於公開資料
驗證方式選擇
基本用法
考慮以下試算表結構的範例。
Spreadsheet URL:
https://docs.google.com/spreadsheets/d/{spreadsheetID}/...
spreadsheetId 請從 URL 取得。
Service Account
使用 Service Account 驗證時,不需要設定 token。OAuth
使用 OAuth 驗證時,需要設定使用者的 access token。以 header 為 key 取得工作表值(建議)
Collection 的轉換簡便,後續處理也能靈活對應,因此推薦此方式。使用 A1 表示法
關於 A1 表示法
A1 表示法是 Google 試算表中指定儲存格或範圍的標準方式(例如「A1」、「A1:B2」)。- 「A1」表示 A 欄 1 列的儲存格。
- 「A1:B2」表示從儲存格 A1 到 B2 的範圍(矩形)。
- 「A:B」表示 A 欄與 B 欄的所有列。
下一步
- Service Account 驗證 — 最常見的方式
- OAuth 2.0 驗證 — 使用者個別存取
- laravel-google-sheets
- Demo 專案 — 支援 Laravel 5.5 至 13 的範例
- 相關套件: Google Search Console API for Laravel