RubyでGoogleスプレッドシートを読み込み・書き込みする

はじめに

Googleスプレッドシートを自分で作成したRubyコードから読み込んだり、書き込んだりするためのコードについてまとめます。

前提と環境

  • Ruby 2.5.1
  • gem環境構築済
  • Googleアカウント取得済とする
  • Google Drive API有効化済
  • Google APIs のクライアントIDとクライアントシークレット取得済

上記のGoogle Drive APIの有効化、クライアントIDとクライアントシークレット取得がまだの場合は
Google Drive APIの有効化とクライアントID、クライアントシークレットの取得方法をご参照下さい。

やること

RubyからGoogleスプレッドシートにアクセスして指定したシートの指定した範囲のセルを読み込んだり、セルに値を書き込んだりします。google_driveというgemを使用します。基本的な手順は以下の参考サイトと同じになります。

google-drive-ruby | GitHub


クライアントIDとクライアントシークレットを含む設定ファイル作成

取得済のクライアントIDクライアントシークレットを含む設定ファイルを以下のように作成しておきます。ファイル名はconfig.jsonとし、これらから作成するRubyのコードと同じディレクトリに保存しておきます。


gemのgoogle-drive-rubyをインストール

google-drive-rubyというgemをインストールします。手順はこちらの公式サイトgoogle-drive-ruby | GitHubと同様で以下のコマンドをターミナル上で実行するだけです。


基本的なコード

以下が実際のコードになります。ここでは適当に以下をdrivetest.rbというファイル名で保存します。

上記が基本的なコードとなります。ここで、以下のような構成のスプレッドシートに対して、上記のコードを実行してみます。

  • スプレッドシート名:rubysheet
  • ワークシート名:シート1



drivetest.rbを実行

上に示したコードを実行すると、以下のようにスプレッドシートが更新されます。セルA2の値がfooセルB2の値がbarに上書きされていることがわかります。


なお、上記をはじめて実行すると、config.jsonscoperefresh_tokenが自動で追記されます。上記コードを実行後はconfig.jsonが以下のように変更されていると思います。


目的別メソッドの使い方

以降ではよく使うメソッドの使い方を目的毎にまとめます。なお、以降に出てくるspは上に掲載した基礎的なコードの中のスプレッドシート sp = session.spreadsheet_by_url("https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxxxxxx/edit#gid=0")wsはワークシートws = sp.worksheet_by_title("シート1")です。このようにスプレッドシート、ワークシートにメソッドを繋げて処理していきます。

データ操作

セルの値を更新したり削除したりする時に使用します。なお、ここのメソッドは基本的に最後にsaveしなければスプレッドシートには反映されません。
ただし、以降に記載しているワークシートの削除を行うdelete等はsaveせずとも即座に反映されるので注意が必要です。


スプレッドシート操作


ワークシート操作


ファイル、フォルダ操作


ファイルアップロード、ダウンロード


まとめ

RubyでGoogleスプレッドシートを読み込み・書き込みするためのコード、各メソッドの使い方をまとめました。今回記載した内容はGoogle Apps Scriptでもできるようなことが多いですが、上記を使ってRubyからGoogleスプレッドシートにアクセスし、その後でRubyならではの処理を施せば色々と応用できると思います。

SPONSORED LINK

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL