PythonでGoogleスプレッドシートを操作する方法【gspread】

PythonでGoogleスプレッドシートを操作する方法【gspread】

こんにちはU太郎です。今回はPythonでGoogleスプレッドシートを操作する方法をご紹介します。
必要なライブラリの紹介から初期設定、ライブラリの使い方まで完全に網羅しておりますので、是非ご覧ください。

Pythonでスプレッドシートを操作する為の事前準備

Googleクラウド側の設定

外部からGoogleスプレッドシートを操作するにはGoogleクラウドにて、キーを入手する必要があります。

まずはGoogleクラウドにアクセスします。
→Googleクラウド:https://console.developers.google.com/

Step1:遷移後のページより「プロジェクトの作成」をクリックします。「プロジェクトの作成」が見当たらない場合、メニューより「有効なAPIとサービス」を選択後、「プロジェクトの作成」をクリックします。

Step2:プロジェクト名を入力し、「作成」をクリックします。

Step3:検索バーにて「Google Sheets API」を検索して検索結果をクリックします。

Step4:「有効にする」をクリックします。

Step5:Step3と同様の手順を「Google Drive API」で行います。

Step6:「有効にする」をクリックします。

Step7:メニューより「認証情報」を選択し、「承認情報を作成」をクリックします。

Step8:ドロップウィンドウ先の「サービスアカウント」を選択します。

Step9:サービスアカウント名を入力後「作成して続行」をクリックします。

Step10:ロールを選択し、ドロップメニューより「現在使用中」>「オーナー」を選択し、続行をクリックします。

Step11:完了をクリックします。

Step12:メニュー画面にて「サービスアカウント」の項目にアドレスが作成されてるのでクリックします。

Step13:サービス名を入力します。

Step14:メニューより、キーを選択後、「鍵を追加」を選択します。

Step15:キーのタイプを「JSON」にし、作成をクリックします。

Step16:秘密鍵がパソコンに保存されました。と表示されjsonファイルがダウンロードされます。

スプレッドシートでの設定

任意のスプレッドシートを開き「共有」を選択します。

先ほど作成したサービスアカウントをコピペで張り付けて「送信」をクリックします。

サービスアカウントはGoogleクラウドの認証情報より確認する事ができます。

Pythonでスプレッドシートを操作する為に必要なライブラリ

Pythonでスプレッドシートを操作する為に必要なライブラリは「gspread」と「google」です。
それぞれpip等でインストールしておきましょう。
※以前まではoauth2clientが使用されていましたが、現在では非推奨になっています。

pip install gspread
pip install google

gspreadの操作方法

Pythonでスプレッドシートを操作するgspreadの基本的な操作方法を解説します。

スプレッドシートを開く

まずはスプレッドシートを開くコードです。このコードはあらゆる操作の基本となります。

from google.oauth2.service_account import Credentials
import gspread


scopes = [
    'https://www.googleapis.com/auth/spreadsheets',
    'https://www.googleapis.com/auth/drive'
]


credentials = Credentials.from_service_account_file(
    "ダウンロードしたjsonファイルまでのパス",
    scopes=scopes
)


gc = gspread.authorize(credentials)


spreadsheet_url = "スプレッドシートのURL(https://docs.google.com/spreadsheets~~~/edit#gid=0)"


spreadsheet = gc.open_by_url(spreadsheet_url)

jsonファイルまでのパスとスプレッドシートのURLはご自身の環境の物を入力してください。

スプレッドシートへの書き込み

書き込みを行う場合はupdate_cellを使用します。
第一引数にはロウ(行)第二引数カラム(列)にはを指定します。
例えば、下記のコードでは1Aに書き込みがされます。

spreadsheet.sheet1.update_cell(1, 1, "書き込みテスト")

スプレッドシートでは列はA,B,C…と振り分けられていますが、cellで指定する場合は何列目と数値で指定する必要があります。
番地をそのまま入力する場合はacellを使用します。

例えば、2Cへ書き込みをしたい場合はspreadsheet.sheet1.update_cell(2, 3, “2-3”)と書きます。

行の挿入

リストの内容等を纏めて行に挿入する事が出来ます。
行を挿入する際にはinsert_rowを使用します。第2引数にはrowを指定します。
例えば5とすると5行目に挿入されます。

list = ["あ","い","う","え","お"]
spreadsheet.sheet1.insert_row(list, 1)

内容の削除

内容を削除する際にはdeleteやclearを使用します。

行の削除

spreadsheet.sheet1.delete_row(1)

全て削除

spreadsheet.sheet1.clear()

内容の取得

適当なスプレッドシートを用意しました。

スプレッドシート全ての内容を取得するにはget_all_values()を使用します。

print(spreadsheet.sheet1.get_all_values())
# [['あ', 'い', 'う', 'え', 'お'], ['か', 'き', 'く', 'け', 'こ']]

行を指定して取得

print(spreadsheet.sheet1.row_values(1))# ['あ', 'い', 'う', 'え', 'お']

列を指定して取得

print(spreadsheet.sheet1.col_values(1))# ['あ', 'か']

セルを指定して取得

print(spreadsheet.sheet1.cell(2, 3).value)# く

gspreadには他にも様々なメソッドが用意されています。詳しくはgspread APIリファレンスを調べてみてください。

今回はPythonでGoogleスプレッドシートを操作する方法をご紹介致しました。

 data-src=

プログラミング情報サイト「In-Output」

当サイトではプログラミング言語の情報を発信しています。
HTMLやCSSのマークアップ言語の学習方法や解説、WordPressでのサイト開設方法、python等のプログラミング言語を使用して日頃の作業の効率化等、皆様のお役に立てるサイトを目指しています。

CTR IMG