~/blog/manipulating-google-spreadsheets-with-oauth2client-and-gspread-in-python
Published on

oauth2clientとgspreadを使ってGoogleスプレッドシートをPythonで操作する

1502文字3分で読めます–––
閲覧数
Authors
  • avatar
    Name
    Shou Arisaka nyapp.buzz/shou
    short bio
    Z世代の情報技術者。Next.jsで自作SNSを個人開発中。

このガイドでは、Pythonのoauth2clientとgspreadライブラリを使って、Googleスプレッドシートのデータをプログラムで操作する方法を紹介します。Googleスプレッドシートはクラウド上でデータを管理できる便利なツールで、Pythonを使ってそのデータを自動化・操作することができます。

必要な準備

1. Google API クライアントライブラリのインストール

以下のライブラリをインストールします。

pip install gspread oauth2client

2. Google APIプロジェクトの設定

  1. Google Cloud Consoleで新しいプロジェクトを作成します。
  2. Google Sheets APIとGoogle Drive APIを有効にします。
  3. 認証情報を作成し、「サービス アカウント キー」を選択します。JSON形式のキーをダウンロードし、プロジェクトに適切な権限を付与します。

3. スプレッドシートの共有

スプレッドシートを作成し、先ほど作成したサービスアカウントのメールアドレスに編集権限を与えます。

Pythonスクリプトの例

以下は、Pythonを使ってGoogleスプレッドシートのデータにアクセスするスクリプトの例です。

import gspread
from oauth2client.service_account import ServiceAccountCredentials

def main():
    # Google Sheets APIのスコープを定義
    scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
    
    # 認証情報の読み込み
    creds = ServiceAccountCredentials.from_json_keyfile_name('path/to/credentials.json', scope)
    
    # クライアントの初期化
    client = gspread.authorize(creds)
    
    # スプレッドシートのIDでスプレッドシートを開く
    sheet = client.open_by_key('your_spreadsheet_id').sheet1
    
    # データの読み取り
    data = sheet.get_all_records()
    print(data)
    
    # セルへの書き込み
    sheet.update_cell(2, 2, 'Hello, World!')

if __name__ == "__main__":
    main()

注意点

  • スプレッドシートIDとJSONファイルのパスは、自分の環境に合わせて変更してください。
  • セキュリティ上、認証情報ファイル(JSONファイル)は他人と共有しないようにしましょう。
  • ServiceAccountCredentials.from_json_keyfile_nameで読み込むJSONファイルには、ダウンロードしたサービスアカウントキーのファイルパスを指定します。

参考資料

avatar

Shou Arisaka

情報技術者 / Z世代プログラマー / SaaSアプリやSNSを開発
今すぐ話そう!

15歳でWordPressサイトを立ち上げ、ウェブ領域に足を踏み入れる。翌年にはRuby on Railsを用いたマイクロサービス開発に着手し、現在はデジタル庁を支えたNext.jsによるHP作成やSaaS開発のプロジェクトに携わりながら、React.js・Node.js・TypeScriptによるモダンなウェブアプリの個人開発を趣味でも行う。
フロントエンドからバックエンドまで一貫したアジャイルなフルスタック開発を得意とし、ウェブマーケティングや広告デザインも必要に応じて担当、広告運用・SEO対策・データ分析まで行う低コストかつ高品質な顧客体験の提供が好評。
国内外から200万人を超える人々に支えられ、9周年を迎えるITブログ「yuipro」の開発者、デザイナーでありライター。現在ベータ段階の自作SNS「nyapp.buzz」を日本一の国産SNSとするべく奮闘中。

Created with Fabric.js 5.2.4 何かご質問がありますか?