はじめに
今回はPythonのプログラムからGoogleスプレッドシートの内容を読み込んだり、スプレッドシートに対して値を書き込んだり、をはじめとする、Pythonとスプレッドを連携させるための設定方法を書いていきます。
これができると、Pythonでスクレイピングした情報をスプレッドシートで管理、共有することができるようになります。
スプレッドシートはクライアントPCの環境に依存せずに使用できるので、何かと便利ですよね。会社で使っている方も多いのではないでしょうか。
Google Cloud PlatformのAPI設定
まずはGoogleアカウントにログインした状態で、以下のリンクを開きましょう。
Googleのアカウントを持っていない場合は、新規登録しておきましょう。
console.cloud.google.com
リンク先を開くと以下の画面が表示されるので、「プロジェクトの選択」をクリック。
「新しいプロジェクト」を選択。
プロジェクト名を入力し、「作成」を選択。
「APIとサービス」の「ライブラリ」を選択。
「プロジェクトの選択」をクリック。
先ほど作成したプロジェクトを選択。
以下の画面が表示されます。
「Google Drive」と入力して検索し、「Google Drive API」を選択します。
「有効にする」を選択。
以下の画面が表示されます。
今度は「Google Sheets」と入力して検索し、「Google Sheets API」を選択します。
「有効にする」を選択。
以下の画面が表示されます。
認証情報の設定
次に、メニューバーから、「認証情報」を選択します。
「認証情報を作成」をクリックし、「サービス アカウント キー」を選択します。
サービスアカウント名に任意の値を入力します。
役割は「Project」の「編集者」を選択し、「作成」をクリックします。
json形式のファイルがPCにダウンロードされます。
サービス アカウント キーにIDが作成されていればOKです。
ここで、ダウンロードしたjsonファイルを開くと
"client_email": "XXXXXXXX@YYYYYYYY"
と記載されている箇所があるので、「XXXXXXXX@YYYYYYYY」をコピーしておきましょう。
スプレッドシート側の設定
Pythonから操作したいスプレッドシートを開き、右上の「共有」をクリックします。
「ユーザー」の部分に、先ほどコピーした「"client_email": "XXXXXXXX@YYYYYYYY",」の「XXXXXXXX@YYYYYYYY」を貼り付けます。
これでスプレッドシートの設定は完了です。
必要なパッケージをインストール
以下2つのパッケージが必要となります。
・gspread
・oauth2client
以下コマンドを実行してインストールします。
pip install gspread pip install oauth2client
または、環境によっては以下のコマンドとなります。ご自身の環境にあったものを実行してください。
pip3 install gspread pip3 install oauth2client
これを実行すると、以下のような表示となります。
これでパッケージインストールはOKです。
Pythonプログラムを編集
以下のコードを作成し、実行しましょう。
# coding: UTF-8 import gspread from oauth2client.service_account import ServiceAccountCredentials scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive'] #jsonファイルを指定 credentials = ServiceAccountCredentials.from_json_keyfile_name('各自のjsonファイル名を入れてください', scope) # 認証 gc = gspread.authorize(credentials) # 読み込むスプレッドシートをファイル名で指定 target_book = gc.open('test_sheet') # 読み込むシートをシート名で指定 target_sheet = target_book.worksheet('シート1') #対象のセルに文字列を書き込み target_sheet.update_acell('A1', 'test')
これを実行すると、以下のようにスプレッドシートのA1セルに「test」と書き込まれました!