【コピペ】Pythonでスプレッドシートに書き込み読み取りする方法

PythonでGoogleスプレッドシートにアクセスしたい!

書き込みや読み取りがをさせたい!

今回は、Pythonからスプレッドシートにアクセスするようにするための、丸っとそのまま使えるコードを紹介します。

実際に私もPythonでスプレッドシートにアクセスするにも同じコードを使用していますので、動作については安心してもらえればと思います。

では、早速みていきましょう!

全体の流れ

Pythonからスプレッドシートにアクセスするためには、以下の流れで実装していきます。

  1. Google Cloud Consoleでプロジェクトを設定
  2. Google Sheets APIを有効にする
  3. 対象のスプレッドシートにサービスアカウントで権限をつける
  4. Pythonでのスクリプトの準備

スプレッドシートにアクセスするために、認証情報が必要になります。

Google Cloud Consoleで、JSONキーをダウンロードしそれを認証情報として使用します。(後述します)

①Google Cloud Consoleでプロジェクトを設定

Google Cloud Console(https://console.cloud.google.com/)にアクセスし、プロジェクトを作成します
ログインすると、左上でプロジェクトを選択できます。

そこから、新しいプロジェクトを作成しましょう。
「APIとサービス」ダッシュボードで「認証情報」を選択し、「認証情報を作成」から「サービスアカウント」を選択します
サービスアカウントを作成し、そのアカウントのJSONキーをダウンロードします
作成したサービスアカウントを選択し、「キー」から鍵を追加できます。

追加したら、JSONキーをダウンロードしましょう。

②Google Sheets APIを有効にする

Google Sheets API – マーケットプレイス Google Cloud コンソール

上記のリンクから、GoogleSheetsAPIにアクセスし、有効化しましょう。

あべべ

正しいプロジェクトを選択しているか確かめてくださいね!

③対象のスプレッドシートにサービスアカウントで権限をつける

先ほど作成したサービスアカウントをコピーして、

あなたが操作したいスプレッドシートに権限をつけてあげましょう。

権限をつけることで、これから紹介する「読み取り・編集」の操作が実行できるようになります。

④Pythonでのスクリプトの準備

必要なライブラリのインストール

PythonでGoogle Sheetsを操作するためには、「gspread」と「oauth2client」ライブラリを使用します。

これらのライブラリをコマンドライン(コマンドプロンプト)で以下を実行してインストールしましょう。

pip install gspread oauth2client
あべべ

pip がない方は、pip3 などでインストールしてみてください。

あとは、コードを貼り付けて実行するだけです!

スプレッドシートから読み取りするコード

import gspread
from oauth2client.service_account import ServiceAccountCredentials

cell = "A1"

# スピプレッドシートから読み込み
def read_spreadsheet(cell):
    # 使用するスコープ
    scope = ['https://www.googleapis.com/auth/spreadsheets']

    # サービスアカウントキーファイルへのパス
    creds = ServiceAccountCredentials.from_json_keyfile_name('JSONキーのパスを記載', scope)

    # 認証
    client = gspread.authorize(creds)

    # スプレッドシートのIDを使って開く(スプレッドシートのURLから取得可能)
    spreadsheet = client.open_by_key('***********************************')
    sheet = spreadsheet.get_worksheet(0)  # 0は最初のシートを意味します

    # A1セルの読み込み
    value = sheet.acell(cell).value
    return value

先ほどダウンロードしたJSONキーのファイルのパスを記載しましょう。

同じディレクトリに配置してしまうのが一番わかりやすいですね。

スプレッドシートに書き込みするコード

import gspread
from oauth2client.service_account import ServiceAccountCredentials

cell = "A1"
value = "書き込んじゃうよ"

def write_spreadsheet(cell, value):
    # 使用するスコープ
    scope = ['https://www.googleapis.com/auth/spreadsheets']

    # サービスアカウントキーファイルへのパス
    creds = ServiceAccountCredentials.from_json_keyfile_name('JSONキーのパスを記載', scope)

    # 認証
    client = gspread.authorize(creds)

    # スプレッドシートのIDを使って開く(スプレッドシートのURLから取得可能)
    spreadsheet = client.open_by_key('***********************************')
    sheet = spreadsheet.get_worksheet(0)  # 0は最初のシートを意味します

    # 指定されたセルに値を書き込み
    sheet.update_acell(cell, value)

読み取りするコードと同様に、キーのパスとスプレッドシートのIDを指定します。

シートは順番から取得するようにしています。今は一番左のシートを指しています。

あべべ

これで、Pythonでスプレッドシートから情報を書き込み・読み取りする手順については終了です。

ぜひあなたのPythonコードに組み込んでもらえればと思います。

まとめ

今回はPythonでスプレッドシートを書き込み・読み取りする方法について紹介しました。

スプレッドシートは管理にとても便利な上にAPI連携も簡単なので、ぜひ活用してみてくださいね。

では、また!

(Visited 47 times, 1 visits today)