Pythonでスプレッドシートを操作する準備
pythonからスプレッドシートにアクセスできないと、データの読み込みや書き込みなどの操作ができません。
アクセスするために必要な工程のメモです。
(1)スプレッドシートへアクセスするための鍵を準備
▼Google API を開いてアクセス権限を付与するプロジェクトを作成
[プロジェクトの選択]から[新しいプロジェクト]を選択し、プロジェクト名を入力し新規プロジェクトを作成します。
![](https://assets.st-note.com/img/1692607407860-Z5sDGbgm4Y.png?width=1200)
![](https://assets.st-note.com/img/1692607552323-l5buf5Qkcd.png?width=1200)
▼APIとサービスを有効化
APIとサービスから[ライブラリ]を選択します。Google Drive APIとGoogle Sheets APIを検索し、[有効にする]を選択します。
![](https://assets.st-note.com/img/1692607747192-0adJCz4xYo.png?width=1200)
APIとサービスから[ライブラリ]を選択します。Google Drive APIとGoogle Sheets APIを検索し、[有効にする]を選択します。
![](https://assets.st-note.com/img/1692608056621-SY2TUw5lBO.png?width=1200)
![](https://assets.st-note.com/img/1692608051116-R4K8kweZIg.png?width=1200)
▼承認情報(jsonファイル)の作成、ダウンロード
Webサーバーがアプリケーションデータにアクセスするための認証情報を作成します。
APIとサービスから[認証情報]を選択します。[認証情報を作成]をクリックし、[サービスアカウント]を選択します。
![](https://assets.st-note.com/img/1692608308848-329LR8jvkm.png?width=1200)
![](https://assets.st-note.com/img/1692608315130-H3jFLjPSqA.png?width=1200)
作成したサービスアカウントのメールアドレスをクリックし、キーから[鍵を追加]をクリックします。[新しい鍵を作成]を選択し、キーのタイプは[JSON]を選択します。作成されたJSONファイルが自動的にダウンロードされます。
![](https://assets.st-note.com/img/1692608596733-48Wltk8YZs.png?width=1200)
(2)操作したいスプレッドシートに権限を付与
pythonで情報を読み込んだり書き込みがしたいスプレッドシートファイルを用意します。
▼書き出したjsonファイルを開き"client_email"をコピー
(1)で書き出したjsonファイルを開き"client_email":xxxxx.com」のクライアントメールアカウント「xxxxx.com」をコピーします。
▼コピーしたアドレスに操作したいスプレッドシートを共有
スプレッドシートの[共有]をクリックします。
次に、クライアントメールアカウント「xxxxx.com」を「ユーザーやグループを追加」フィールドに貼り付け、[送信]をクリックします。
![](https://assets.st-note.com/img/1692609623356-2DsFzdJDnT.png?width=1200)
![](https://assets.st-note.com/img/1692609627819-HGogl0wA0X.png?width=1200)
▼jsonファイルをpyファイルと同じ場所に格納
ダウンロードしたjasonファイルは使いたいpyファイルと同じ階層のディレクトリに格納しておく必要があります。
(3)pythonで操作するスプレッドシートを読み込む
▼(2)で作成したjsonファイルをスプレッドシートに紐づけてpythonで読み込む
以下はpythonで記入したコード
import gspread
gs = gspread.service_account(filename="./jasonファイル名")
sh = gs.open_by_url("スプレッドシートのURL")
ws = sh.worksheet("ワークシート名")
上記コードの補足
import gspread
→スプレッドシートを読み込むためのコード
gs = gspread.service_account(filename="./jasonファイル名")
→gsという変数に(2)で作成したjsonファイルを指定したものを代入
sh = gs.open_by_url("スプレッドシートのURL")
→shという変数にgsをスプレッドシートのURLで開いたものを代入
ws = sh.worksheet("ワークシート名")
→wsという変数にsh内の操作したいワークシートを指定して代入
以上です。