【Python】Google Spreadsheetを編集するために初期設定からのまとめ

727 語
4 分
【Python】Google Spreadsheetを編集するために初期設定からのまとめ

はじまり#

リサちゃん avatar
リサちゃん
PythonでGoogleスプレッドシートを編集したいんだが、そのための認証が面倒で、どこで躓いたが分からなくなってしまった~!!
135ml avatar
135ml
じゃあ、今回はPythonでスプレッドシートを使うために、Google Cloud Platformで行う初期設定を書いてみるかあ。
リサちゃん avatar
リサちゃん
押忍!!

設定作業その1:Google Cloud PlatformでAPIを有効化する#

まず、Google Cloud Platformでプロジェクトを作成します。(作成の過程は割愛します。)

そして、GCPのコンソール画面のサイドバーから以下の「ライブラリ」をクリックします。

以下の画面から、今回必要なAPIを有効化します。今回は2種類のAPIを有効化します。

そして、「Google Drive API」と「Google Sheets API」を有効化します。

APIが追加できたかどうかを確認します。

今度は、「APIとサービス」の「ダッシュボード」をクリックして以下のような画面で確認します。

設定作業その2:Google Cloud Platformで認証情報を設定する#

外部アプリケーションからスプレッドシートにリクエストするためにクレデンシャル情報を設定します。

「認証情報を作成」をクリックして、「サービスアカウント」を選びます。

サービスアカウントの設定画面になります。

編集者を選択します。

ここは省略します。

そして、作成したサービスアカウントを確認して、キーの出力を行います・・・

「鍵を追加」→「新しい鍵を作成」の順番でクリックします。

秘密鍵をJSONファイルとして作成します。「作成」をクリックする。

PCにJSONファイル形式のファイルが保存されます。

余談:Workload Identity 連携について#

ちなみに、先程のサービスアカウントのキー出力の画面内の警告文に「代わりにWorkload Identity 連携を使用することをおすすめします。」と書いてありました。

こちらの連携設定を行った記事は、こちらになっていますので、興味があればご参考ください。

今回の作業では必要ありません。

設定作業その3:Googleスプレッドシートを編集するための設定#

権限追加するシートの右上の「共有」ボタンをクリックする。

IAM設定で追加したサービスアカウントのプリンシパルをコピペします。

そして、そのユーザーを編集者権限にして、送信をクリックします。

確認作業:Pythonコードを実行してみる#

設定作業を行った後は、こちらを試してみると動作確認できるかと思います。

import gspread
from oauth2client.service_account import ServiceAccountCredentials
def authorizeGSSToGetWorksheet(credentialJsonFileName : str, gssId : str, sheetName : str):
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name(credentialJsonFileName, scope)
gc = gspread.authorize(credentials)
worksheet = gc.open_by_key(gssId).worksheet(sheetName)
return worksheet
jsonKeyFileName = "先ほどダウンロードしたjsonファイルのフルパス"
gssId = "共有設定したスプレッドシートのID"
sheetName = "共有設定したスプレッドシート内の編集したいシート名"
worksheet = authorizeGSSToGetWorksheet(jsonKeyFileName, gssId, sheetName)
cellList = worksheet.findall("検索値")
print(cellList)

gssIdは、URLで言うと、”https://docs.google.com/spreadsheets/d/<この部分>/edit#gid=0″の部分になります。

上述のプログラムを実行してみると、こんな感じの値が返ってくると思うので、スプレッドシートにアクセスできることが確認できると思います。

[<Cell R350C4 'https://qiita.com/ny7760/items/9cdc3407dfda99c21ae1'>]

おしまい#

リサちゃん avatar
リサちゃん
ふい〜、何とか設定できたなあ〜!
135ml avatar
135ml
Pythoから叩けるようになることで、スプレッドシートのデータをnumpyとmatplotlibと組み合わせられるようになりますねぇ。

以上になります!

記事を共有

この記事が役に立ったなら、ぜひ他の人と共有してください!

【Python】Google Spreadsheetを編集するために初期設定からのまとめ
https://endorphinbath.com/posts/python-gss-setting-to-edit/
著者
kinkinbeer135ml
公開日
2022-01-09
ライセンス
CC BY-NC-SA 4.0
関連記事 スマート
1
【Python】gspreadなどを使う時にセルを数値からアルファベット形式(A1 notation)に加工する
Code Pythonで利用できるモジュールであるgspreadを使ってGoogleスプレッドシートに入力する時、数値ではなくA1形式で入力する必要があります。数値からアルファベットにするスクリプトを掲載します。
2
【GitHub】Pythonでリポジトリの情報を取得するCloud Functionsを作る
Code Pythonを使用してGitHubリポジトリの情報を取得し、Cloud Functionsで処理する方法に関する記事です。PyGithubとThreadingで実装および処理を効率的にしました。
3
Pythonまとめ
Code Pythonに関する今までの記事を一つの場所に一覧にしました。
4
【Document AI】確定申告のために為替差益の計算に必要なデータを抽出する
Software Document AIを使用して、確定申告のために必要なデータである為替差益に関する情報を、証券口座から受け取った書類からOCRして、スプレッドシートに一気に反映していく方法を紹介します。
5
【Cloud Functions】デプロイ直前にランタイム環境変数を利用した関数のテストは出来ない、のかもしれない
Code Google Cloud Functionsを使ってデプロイ直前にランタイム環境変数を利用した関数のテストができない事象に関する記事です。PythonとGoでテストしましたが一部のキーの環境変数以外は取得できませんでした。
ランダム記事 ランダム
Profile Image of the Author
kinkinbeer135ml
SIerをやめて、プログラミングを勉強しています。※Amazonアソシエイトに参加しています。
お知らせ
私のブログへようこそ!これはサンプルのお知らせです。
音楽
カバー

音楽

再生中なし

0:00 0:00
歌詞なし
カテゴリ
タグ
サイト統計
記事
287
カテゴリー
8
タグ
93
総文字数
486,174
運用日数
0
最終活動
0 日前

目次