こんにちは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スプレッドシートを操作する方法をご紹介致しました。