LoginSignup
1
0

More than 1 year has passed since last update.

備忘録 spreadsheet をPythonで操作する(gspread)

Last updated at Posted at 2021-11-24

初心者が何とか使ってみるために色々やって
なんかよくわからんけど唯一動いた()のがこの方法だったので自分用に保管しておく。

1.Google側でAPIを使う設定を済ませる
いきなりPython側で操作せず、まずはGoogle側で設定する。
以下のサイトを参考にした。
https://hituji-ws.com/code/python/python-spreadsheet/ 
(2021.11.25閲覧)
 GoogleCloudPlatformにアクセスしてAPIを有効化、その後スプレッドシート側に移動して共有の設定をする。

注意
ここでDLする.jsonファイルは後々プログラムを書くファイル(.py)と同じフォルダに保管する

2.pythonのターミナルでライブラリをインストールする
今回使いたいgspreadとoauth2clientはインストールする必要がある為、pipコマンドを用いてPythonにインストールする。
(ターミナルから)

install.py
pip install gspread
pip install oauth2client

これで下処理は完了。

3.Python側で記述する
ここは勉強不足なのでよくわからないままであるがとりあえずAPIを使うために決まり文句的に書かないといけないっぽい?
このサイトが死ぬほどわかりやすく説明してくれているのでこれに従って書けばおk

この段階で作る.pyファイルと同じフォルダに先述の.jsonファイルがないとエラー吐いて動かない。

以下引用(自分用にコメントアウトを一部改変しています。)

import gspread
import json
#ServiceAccountCredentials:Googleの各サービスへアクセスできるservice変数を生成します。
from oauth2client.service_account import ServiceAccountCredentials

#2つのAPIを記述しないとリフレッシュトークンを3600秒毎に発行し続けなければならない(固定URL)
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']

#認証情報設定
#ダウンロードしたjsonファイル名をクレデンシャル変数に設定(秘密鍵、Pythonファイルから読み込みしやすい位置に置く)
credentials = ServiceAccountCredentials.from_json_keyfile_name('.json', scope)#jsonファイルは同じフォルダ内に入れておく

#OAuth2の資格情報を使用してGoogle APIにログイン
gc = gspread.authorize(credentials)

#スプレッドシートキーを指定してワークブックを選択(スプレッドシートURLより)
workbook = gc.open_by_key('~~d/ココ/edit~~')#ここまで前提操作

#ここから自由
# シートの一覧を一次元配列に格納する
worksheet_list = workbook.worksheets()
#ワークシート指定
worksheet = workbook.sheet1

#読み込みはこれ(セルをダイレクトに指定)
cell_value = worksheet.acell('B1').value
print(cell_value) #print忘れずに

他に4つくらいのサイトの方法を試したが、どれもエラー吐いてしまった。
うまくファイルを拾えないようだったがエラーの原因もわからず。
それを解決する力などまだないので今後の課題ですね。

参考:https://tanuhack.com/library-gspread/
   https://hituji-ws.com/code/python/python-spreadsheet/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0