\r\n\r\n

Pythonでgoogleワークシートを読み書きする方法

pythonは見た目が奇妙で変わっていますが、学ぶのも使うのも簡単です。今回は、pythonを使ってgoogleワークシートの読み書きをする方法を紹介します...

Pythonは優れたプログラミング言語です。構文は奇妙で珍しいと思われるかもしれませんが、簡単に習得して使用することができます。Minecraft Pi版をはじめ、さまざまなWebサイトや学術研究プロジェクトに対応しています。

この記事では、Pythonを使ってgooglesheetsを読み書きする方法を紹介します。もしあなたがPythonの旅を始めたばかりなら、Pythonを学ぶためのベスト5ウェブサイトが良い出発点です。

Googleの設定

コードを書く前に、Googleフォームにいくつかの初期設定をする必要があります。

まず、自分用に新しいテーブルを作成します。すでにセットアップされている場合は、このステップは省略できます。

次に、共有オプションを設定する必要があります。署名認証を生成する必要がありますが、これは実際よりも難しく聞こえます。Google Developer Consoleに移動し、次の場所で新しいプロジェクトを作成します(または既存のものを使用します)。

プロジェクトに適した名前を指定し、「作成」をクリックします。

Google Apps APIでDrive APIを選択します。

Enableを選択します。

ここで、左側のメニューにある資格情報を選択します。

認証情報の作成」ボタンの小さな矢印をクリックします。

ここで、サービスアカウントキーを選択します。

service accountでApp Engineのデフォルトのサービスアカウントを選択し、フォーマットはJSONを選択します。

作成をクリックすると、.jsonファイルがダウンロードされるはずです。このファイルをプロジェクトディレクトリに移動し、creds.jsonにリネームします。 最後に、ファイルを開き、クライアントの電子メールを探します。プロジェクト名 appspot.gserviceaccount.com とします。 このメールアドレスを使って、Googleワークシートを共有します(右上の > share> enter email)。

こちらはGoogle Drive側です。

パイソンセットアップ

Pythonには大きく分けて2.7と3.xがあり、今回は2.7を使用しますが、どちらを使ってもかまいません。pythonwikiにその違いが書かれていますので、興味のある方はご覧ください。仮想環境をインストールするのもよいでしょう。これは、この記事の範囲を超えていますが、良い習慣です。

Microsoft Windowsをお使いの場合は、Pythonをダウンロードしてインストールする必要があります。Mac OSにはすでにPythonがインストールされています。WindowsやLinuxのマシンでしっかり追えるはずです。乗り換えた方がいいのかどうか、ぜひガイドを見てみてください。

まず、新しい端末を開きます。いくつかのPythonパッケージはpipでインストールする必要があります。これはお勧めのツールで、パッケージの管理が非常に簡単になります。Pythonに付属しています。

oauth2clientをインストールする必要があります。oauthはWeb認証のフレームワークです。その詳細は割愛しますが、すべてを正しく、安全に動作させるために必要なものです。pip:を使って簡単にインストールすることができます。

pip install oauth2client

また、セットアップによっては、PyOpenSSLをインストールする必要があります:.

pip install PyOpenSSL

ここで、Anton BurnashevのGspreadをGitHubにインストールする必要があります。これは非常に良いライブラリで、Pythonを使ってgooglesheetsにアクセスするのが非常に簡単になるように設計されています。ここでも、pip:を使って簡単にインストールすることができます。

pip install gspread

次に、お気に入りのテキストエディタ(私はSublime text 3を使用しています)を開いてください。新規にPythonファイルを作成し、プロジェクトのディレクトリ _input-output に google という名前で保存します。以下のようにコードをテストしてください。

print 'Hello, World!'

ターミナルに戻り、プロジェクトディレクトリに移動します。cdコマンドを使用することで可能です。ファイルの一覧を表示するにはls、作業ディレクトリを表示するにはpwdを使用します。

プロジェクトディレクトリに移動したら、Pythonスクリプトを次のように実行します。

python google_io.py

これで、コマンドライン上にHello, World! が表示されるはずです。

Pythonが正常に動作するようになったので、ライブラリの設定に移りましょう。hello worldのコードを削除してください。ここでGspreadをインポートして、再度コードを実行します。

import gspread

何も問題がなければ、何も起こらない。もし、Xという名前のモジュールがない、Xは入力したモジュールの名前(Gspread)だ、というようなエラーが出たら、pipがモジュールを正しくインストールしたか、タイプミスがないかを再確認してください。

以下、スタートアップコードです。

import jsonimport gspreadfrom oauth2client.client import SignedJwtAssertionCredentialsjson_key = json.load(open('creds.json')) # json credentials you downloaded earlierscope = ['https://spreadsheets.google.com/feeds']credentials = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'].encode(), scope) # get email and key from credsfile = gspread.authorize(credentials) # authenticate with Googlesheet = file.open("MUO_Python_Sheet").sheet1 # open sheet

これは、単に.jsonファイルからお客様の情報を取得し、それを使ってGoogleで認証するものです。次に、MUOu Pythonu シートというシートを開いてください。Pythonは大文字と小文字を区別するので、このコードが正しく入力されていることを確認してください。

読書

これですべての設定が完了し、データの読み書きが簡単にできるようになりました。ここでは、一連のセル(この場合はすべての車のセル)を選択する方法を説明します。

all_cells = sheet.range('A1:C6')print all_cells

こんな感じです。

あまりいい感じではないでしょうか? Pythonはフォーマットに関係なく、オブジェクトの中身をダンプしています。この変数は、all-uセル変数に格納されているため、他のPythonオブジェクトと同様にアクセスすることができます。ここでは、すべてのセルの値をよりよい形式で印刷する方法を紹介します。

for cell in all_cells:print cell.value

こんな感じです。

セルは個別にアクセスできる(ただし、複数回アクセスすると遅くなることがある)。

A1 = sheet.acell('A2').value # this cell contains "Ford"

また、セル座標を用いることもできる。

coord = sheet.cell(3, 0).value

一列に並んだすべての値を簡単に取得することができます。

row = sheet.row_values(1) # first row

あるいは、列全体を取得することもできます。この場合、モデル行を取得します。

col = sheet.col_values(2) # models

どちらの方式も、データの量はわからないということをお忘れなく。3行しかない場合、複数の余分な空セルが返されます。あらかじめ定義されたセルのブロックにアクセスする方が、ほとんどの場合、優れています。

ライティング

ワークシートに書き戻すのも簡単で、Readと同じようにセル名や座標を使うことができます。

sheet.update_acell('C2', 'Blue')sheet.update_cell(2, 3, 'Blue')

GitHubのプロジェクトページには、より多くの例が掲載されています。

重要なワークシートを書く場合は、安全なセルを検討するとよいでしょう。セルに値を格納し(私は「Don'tdeletethis」を使っています)、まずそのセルを読み取ります。もし内容が変わっていたら、ワークシートに列が追加されたり削除されたりしているので、そのまま書き続けないでくださいね。そのための方法を紹介します。

if sheet.acell('B3') != 'SAFETY':# something has changed in the sheet, DO NOT PROCEEDraise Exception("Oh My, I'm not ready for this.")else:# continue with your writingsheet.update_acell('C2','Blue')

これは良い練習になります。スクリプトが誤って間違った列に書き込まないようにするもので、適切なバックアップの代わりにはなりません(バックアップは取っていますよね)。

基本がわかったところで、何かカッコイイことをやってみようLinuxでタスクをスケジュールするためにcronを使用する方法を学びます(またはWindowsの代替手段をチェックします)。フォトフレームをパワーアップさせたり、オフィスのダッシュボードを作ったりするのもいいかもしれませんね!私はそうしました。また、HerokuでPythonのサイトをホストするのはいかがでしょうか?

Excelも使っている方は、ExcelのデータをPythonスクリプトにインポートする方法を学びましょう。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ