發表於 Google SheetPython教學

【Python】Google Sheet 免費資料庫替代品! — 基礎CRUD 新增讀取修改刪除篇(2)

前言:

上一篇已經帶著大家申請了私認為蠻複雜的API 權限了~
那在這一篇我想跟大家介紹一下基本的操作
藉由用簡單的記帳小範例讓大家一步一步了解 Google Sheet的操作!

接下來大致有四大操作和一步驟:

  • 加入編輯檔案的權限
  • Create 新增sheet
  • Read 讀取資料
  • Update 修改或更新儲存格
  • Delete 刪除

就讓我們開始動手做吧!!
Getting Your Hands Drity!

新增Google Sheet:

因為權限的關係(從上一篇講到現在都還要講權限,可見這詞的重要性!XD)
Google 沒辦法自己幫我們新增檔案,所以我們要自己新增一個我們會用到程式控制的Google Sheet 檔案。

這步驟很簡單~~就跟一般新增的方法一樣直接新增就好了~
檔名我就取名叫 餐費 吧XD
(畢竟我還是學生嘛~ 花最多的還是餐費呢!!

Google Sheet 自己新增

接下來就是最重要的!!
還記得上一篇 有請大家下載一個權限認證用的檔案嘛!
打開那個檔案繪看到一個 JSON 格式檔案!
像是底下這樣~

你們打開的時候可能沒有長的這麼清楚好看(因為我是用VSCode的格式化的XD)
找到 client_id 對應到的 後面那串很長的信箱把它複製起來!!

然後請將這個 email 加入剛剛檔案的共用者吧~~~

這段真的很重要要記得做好喔!!
不然等等做任何操作都會得到400的錯誤訊息!!!!!

JSON 檔案內容樣子

這樣就完成了! 恭喜老爺賀喜夫人~

開啟 Sheet 或是 新增 Sheet:

接下來就可以操作了!
在那之前我們需要下載

pip install --upgrade google-api-python-client oauth2client gspread

接下來就開始認證吧!

將下載下來的JSON放到同一個資料夾下面
然後打上下面這段
基本上跑完沒有錯誤就是成功了呢!!

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_name("./GoogleSheetTeach-WP-2c572cd3d8d0.json", scope)
client = gspread.authorize(creds)
spreadSheet = client.open("餐費")#或是可以用 add_worksheet("11月", 100, 100) 來新增 sheet = spreadSheet.worksheet("11月") # 利用 title 來抓 sheet

新增資料與修改資料(CRUD):

我相信如果想要使用這樣的功能的人都是想要紀錄很多資料的,所以一定會想要把它當作 Excel 來記錄吧!
既然是這樣就一定會需要在資料的最上方加入 Header
底下的這個小範例就是示範如何利用 Python 在 Google Sheet 裡面新增資料!
他的做法有兩種:

  • 利用 「A1 Notation」
  • 利用 Row, Column 的位置

A1 Nation 是什麼呢~? 常用Excel的人一定都知道也很熟悉,只是不懂他是這個名稱而已!
就是這個!

a1 notation
A1 Notation

在這張圖中的欄位和行列名稱就叫做「A1 Notation」 
他的標示法很簡單,以上面這張圖來表示的話他的表示法就是

 

A9:C12

現在我們了解了如何定位欄位的位置的話就可以開始寫新增資料的程式啦~

addheader

因為是 Header 所以我就都放在 A~D 的第一列
他的做法就是跟 sheet 拿一連串的 Cell (就是每一個小格子)
然後再用一個for迴圈設定那一連串的 Cell 之中的 Value

至於為什麼我會用到 header 這個陣列 和 enumerate 呢?
因為我不想要在 for 裡面一直寫到header的內容 ex: 日期、晚餐…等等的字~
所以我就放到 for 裡面一起跑迴圈了~

大家要記得!!

這邊是從1開始數喔!! 不要把他跟 Python 的陣列 index 搞混了!

最後放一個我放入三項餐費的紀錄寫法吧!
如果有問題的話可以在下面提問喔!
或是你有更好的寫法也可以在下面討論~

餐費.png
餐費紀錄寫法

讀取資料(CRUD):

讀取資料的話有蠻多種做法的:

  1. sheet.get_all_values
  2. sheet.get_all_records
  3. 直接針對 Row, Column 讀取
我下面就直接上程式碼吧
我會附上他們之間的差別的~
這是我的資料內容
餐費預覽
 

1. get_all_values

每一 Row 作為一個陣列回傳

餐費讀取1

2. get_all_records

會以 Dict 的方式回傳,Header 作為 Key

餐費讀取2

3. 直接針對 Row, Column 讀取

餐費讀取3

刪除資料(CRUD):

我可以很開心地告訴你XD
作法就是用 update_cell 將 Cell 更新為空字串XDDDDDD

很簡單吧~~~

# ——————————————————————————————————————–
# 沒想到這一篇竟然從去年寫到今年呢! 因為我是2018/12/31晚上開始寫的XD
# 這學期是我大四的上學期,幾乎都在忙專題和報告
# 之後就會有比較多時間上來寫我喜歡的主題分享了~
# 那這一篇就到這邊啦~
# 有任何指教或是問題的都可以在下方跟我討論喔!
# ——————————————————————————————————————–

到這邊大家應該都了解怎麼利用 Python 串接 Google Sheet 了吧(對吧對吧~
之後大家也可以利用這樣的功能,整合到自己的 Line bot 裡面之類的
幫自己的機器人製作更多的功能
或是也可以在自己的伺服器中加上一個API記錄下來資料
總之,真的很方便很好用呢!

那我們就下一篇再見吧~掰掰~

# BTW 這次的特色圖片(最上面那張) 是我自己做的耶 !!
# 大家覺得好不好看XD
# 我自己是覺得有點單調,不過我認為以第一次來看這算好看的了XD

# Icon 繪師:

Icons made by Freepik licensed by CC 3.0 BY
Icons made by Pixel Buddha is licensed by CC 3.0 BY

x

 

作者:

一位 熱愛資工領域、喜歡好笑事物、偶爾打打網球 的學生 ! For A Better Me!

【Python】Google Sheet 免費資料庫替代品! — 基礎CRUD 新增讀取修改刪除篇(2) 有 “ 2 則迴響 ”

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.