
PythonでGoogleスプレッドシートの内容を読み込んでみた。
修正履歴
・2024/05/19:初版
やること
PCのローカルに保存しているExcelファイル(拡張子はxlsx)の内容をよみこんでみました。
事前準備
Googleスプレッドシートに対してPythonからアクセスするためにはAPIの準備が必要になります。
以下のページに詳しく書かれています。
コードを書く前に適当なGoogleスプレッドシートを作成しておいて下さい。
コードを書く前に
必要な関数をpip installしておきましょう。
pip install gspread
pip install oauth2client
コードを書く
では早速コードを書いていきましょう!
import文
以下をインポートしておきましょう。
import os
import gspread
from oauth2client.service_account import ServiceAccountCredentials
関数の中身
では関数の中身を書いていきましょう。
特に難しいことはないでしょう。
またテストなのでファイル名をコードに直接書いていますが、業務で使う際には工夫をして下さい。
# 環境変数の設定
GSS_TEMP_KEY = 'xxxxxxxxxx'
# worksheetの情報を返す関数
def get_gss_worksheet(gss_name, gss_sheet_name):
print('開始-get_gss_worksheet')
#jsonファイルを使って認証情報を取得
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
c = ServiceAccountCredentials.from_json_keyfile_name('gss_credential.json', scope)
#認証情報を使ってスプレッドシートの操作権を取得
gs = gspread.authorize(c)
# スプレッドシート名をもとに、キーを設定
if gss_name == "test-csv":
spreadsheet_key = GSS_TEMP_KEY
print('gss_name:[' + gss_name + ']')
print('gss_sheet_name:[' + gss_sheet_name + ']')
print('spreadsheet_key:[' + spreadsheet_key + ']')
#共有したスプレッドシートのキーを使ってシートの情報を取得
worksheet = gs.open_by_key(spreadsheet_key).worksheet(gss_sheet_name)
print('終了-get_gss_worksheet')
return worksheet
def main():
print('開始-main')
# スプレッドシートを定義
worksheet = get_gss_worksheet(gss_name='test-csv', gss_sheet_name='sheet1')
# スプレッドシートを読み込み
value = worksheet.acell("G7").value
print('G7:[' + value + ']')
value = int(value) + 1
# スプレッドシートを更新
#書き込みはなんかエラーがでるけど、今回は書き込みは考えず
#読み込みだけで良いのでコメントアウト
#worksheet.update_acell("G7", value)
print('終了-main')
if __name__ == "__main__":
# mainの実行
main()
実行結果
こんな感じで実行されました。
(testxxx) xxxx % python3 testxxx.py
開始-main
開始-get_gss_worksheet
gss_name:[test-csv]
gss_sheet_name:[sheet1]
spreadsheet_key:[xxxxxxxxxxxxx]
終了-get_gss_worksheet
G7:[1]
終了-main
(testxxx) xxxx %