今回はPythonを使ってGoogleスプレッドシートを操作するには、事前に鍵を取得しなければならない。今回はその鍵の取得からスプレッドシートを操作するところまでを解説する。

【Python×スプレッドシート】gspreadの基本コード一覧
gspreadを利用してスプレッドシートを操作する方法リスト。
gspreadを使用できるための事前準備編は下記のページから↓↓...
Contents
事前準備
1.Google Cloud Platform での作業
「Google Cloud Platform」にアクセスする。
最初に以下のURLにアクセスする。
https://console.developers.google.com/
「My First Project」をクリック

「新しいプロジェクト」をクリック

プロジェクト名を設定して作成

「APIとサービスの有効化」をクリック

APIを有効にする

上記のような画面になったら、
- Google Drive API
- Google Sheets API
の2つのAPIを検索して有効化する。

認証情報を作成する
①認証情報を作成 をクリック

②サービスアカウント を選択

③必要事項を設定する
自動作成されたメールアドレスは後で必要になるためコピーして控えておく

④自分の使用目的に合ったロールを選択する
個人で使う分には「編集者」にしておけばOK

⑤完了

秘密鍵の発行
①先ほど作成したサービスアカウントのメールをクリック

②新しい鍵を作成する

③作成した鍵をダウンロードする

作成した秘密鍵をPythonプログラムと同じディレクトリに配置
sample_folder
│ main.py
│ python-key.json
秘密鍵のファイル名は変更してもOK
2.操作したいスプレッドシートの設定
スプレッドシートを作成する
最初にPythonで読み込みをしたいスプレッドシートを作成する。
今回は下記画像のようなファイルを用意した。

スプレッドシートのファイル自体をワークブック
ワークブックの中にあるそれぞれのページをシート
シートの中にある1つ1つのマスをセル
という。
シートを共有化する
①共有ボタンをクリック

②サービスアカウントのメールアドレスを入力して共有

プログラムへの組み込み
1.モジュールをインストール
gspread:スプレッドシートを操作するためのモジュール
oauth2client:スプレッドシートにアクセスするための認証に使用する
pip install gspread
pip install oauth2client
2.認証設定
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
# ****の部分に秘密鍵(JSONファイル)のファイル名を入力
Keyfile = '****.json'
credentials = ServiceAccountCredentials.from_json_keyfile_name(Keyfile, scope)
gc = gspread.authorize(credentials)
3.操作するスプレッドシートを指定
Pythonでスプレッドシートを操作するために
- どのワークブックの
- どのシートの
- どのセル
を操作するかを設定する。
ワークブックの指定
ワークブックを指定するには以下の方法がある。
- 「名前」で取得する (‘ワークブック名’)
- 「id」で取得する (‘id’)
- 「URL」で取得する (‘URL’)

# **** は環境によって変更する。
# 名前で取得
wb = gc.open('****')
print(wb)
# idで取得
SP_id = '*************'
wb = gc.open_by_key(SP_id)
print(wb)
# URLで取得
SP_URL = 'https://docs.********'
wb = gc.open_by_url(SP_URL)
print(wb)
どの方法で取得しても全て同じ結果が出力される。

ワークシートの指定
ワークシートを指定するには以下の方法がある。
- 「名前」で取得する (‘シート名’)
- 「index」で取得する (0) or (1) or …
- 「sheet1」で取得する sheet1
# 最初にidでワークブックを取得しておく
SP_id = '****'
wb = gc.open_by_key(SP_id)
# 名前で取得
ws = wb.worksheet('シート1')
print(ws)
# indexで取得
ws = wb.get_worksheet(0) # 一番左のシートが0になる。
print(ws)
# sheet1を取得
ws = wb.sheet1 #sheet2やsheet3を設定するとエラーになる。
print(ws)
どの方法で取得しても全て同じ結果が出力される。

indexは一番左のシートが「0」になり、
右に向かって「1」、「2」…と連番になる。
「ws = wb.sheet1」は
sheet1以外(sheet2やsheet3など)は取得できない。
あとは値を取得or入力するセルを指定すればスプレッドシート内のデータを編集できる。
詳しいやり方はこちらの記事で↓↓

【Python×スプレッドシート】gspreadの基本コード一覧
gspreadを利用してスプレッドシートを操作する方法リスト。
gspreadを使用できるための事前準備編は下記のページから↓↓...