上次教過大家用 python 去讀寫 excel,這次要分享用 python 串接 Google Sheet,對 Google Sheet 做讀寫。

文章會分為三大部分:
1. 啟用 Google Sheet API
2. python 連接 Google Sheet
3. pygsheets 資料讀寫

啟用 Google Sheet API

step 1. 建立 GCP 專案

  1. 前往 GCP 網頁
  2. 點選 [選取專案] > [新增專案]
  3. 填寫專案資訊,點選 [建立]

step 2. 啟用 API

  1. 前往 Google Sheet API,先點選 [選取專案] 選剛剛建立的專案,再點選 [啟用]
  2. 點選 [憑證] > [建立憑證] > [服務帳戶],填寫相關資料後點選 [完成]
  3. 我們會獲得一個服務帳戶,之後要和這個帳戶共享 google sheet。
  4. 點選剛剛建立的帳戶 > [金鑰] > [新增金鑰] > [建立新的金鑰] > [json] > [建立]
  5. 這時候就會下載一個 json 檔案,這個檔案就是連接 Google Sheet 的密碼,記得妥善保管,不要外流。

python 連接 Google Sheet

step 1. 建立 Google Sheet

  1. Google Sheet 建立一個試算表
  2. 點選 [共用],輸入剛剛服務帳戶的 email

step 2. 建立 python 檔

  1. 安裝套件,終端機輸入 pip install pygsheets
  2. Python 程式碼
  3. 連接 Google Sheet 會需要兩項資訊,一個是剛剛下載的金鑰,另一個是 Google Sheet 的網址(直接複製網址列的網址就是了)
    import pygsheets
    
    key = "xxx.json" # json 金鑰的檔案路徑,記得換成自己的
    gc = pygsheets.authorize(service_file = key)
    
    url = "https://docs.google.com/spreadsheets/xxx" # Google Sheet 的網址,記得換成自己的
    sheet = gc.open_by_url(url)

pygsheets 資料讀寫

  1. 開啟工作表
  2. work_sheet = sheet.worksheet_by_title("工作表1")
  3. 讀取 Google Sheet
  4. 取得每一小格(cell)有兩種方法,第一種是利用字串 "A1",第二種是利用 tuple 給行列的值
    print(work_sheet.cell("A1").value)
    print(work_sheet.cell((1,2)).value)
  5. 寫入 Google Sheet
  6. cell 的取得方式和剛剛一樣,再利用 = 把值寫入即可
    work_sheet.cell("A1").value = "apple"
    work_sheet.cell("A1").value = "banana"

這篇文章就先寫到這裡啦,之後再出一篇文章教大家更多的讀寫技巧。