2017年6月1日木曜日

スプレッドシートへのアクセス

とりあえず環境はできたので、実アクセスをしていこう。

公式のドキュメントは Spreadsheet Service にあったので、そこを読み解いていこう。

パッと見たところExcelのCOMのような感じではあるけど、Sheetの中身はRangeで指定してアクセスする、って感じに見受けられる。どうなんだろ。やっていくうちにわかるか。

1. 最初のクラス

とりあえず重要そうな、というか最初に必要になりそうなのはSpreadsheetAppSpreadsheetあたりかな。

英文の説明からざっくりとした把握だと以下みたいな感じかな。

  • SpreadsheetApp
    • スプレッドシートを作ったり、開いたりするのに使う
  • Spreadsheet
    • スプレッドシートへアクセスして編集するのに使う



まずは対象を開けなきゃ始まらない、ということでSpreadsheetAppから見てみる。

中にはcreateとかopenとか、いかにもなMethodが準備されてて安心。
とりあえずcreateは後回しにして、まずはopenから掘り下げようかな。


2. ファイルを開きたいのです。オープン!

openと名前がついているMethodには3種類あるみたい。
名前のままだけど以下意味の様子。


  • open(file)
    • fileオブジェクトを渡して開く
  • openById(id)
    • Idを指定して開く
  • openByUrl(url)
    • Urlを指定して開く



GASはじめたばかりなので、fileオブジェクトもIdも現時点では意味不明。
まぁどこからか取得したりするんだろうけど、いったん放置で、わかりやすそうなUrlから手を出してみるかね。


 
 // The code below opens a spreadsheet using its id and logs the name for it.
 // Note that the spreadsheet is NOT physically opened on the client side.
 // It is opened on the server only (for modification by the script).
 var ss = SpreadsheetApp.openByUrl(
     'https://docs.google.com/spreadsheets/d/abc1234567/edit');
 Logger.log(ss.getName());
 
3. openByUrl - URLからスプレッドシートを開く

公式ドキュメント(openByUrlのAPI説明)が超丁寧。
サンプルまでついてて、しかもコピー機能までついてるとか。神か。

とりあえず作成していたスクリプトのmyFunction内にサンプルをペタリ。
URL部分だけ、自分のドライブ内のスプレッドシートのURLに置き換える。

再生ボタンっぽいのを押して実行してみる。

ログが出てるらしいがどこだ...と思ったら[表示]-[ログ]で確認できました。
ちょっとログの操作性は微妙だな...



特に苦労することもなく、まぁ普通の感じ。
普通のファイル処理プログラムと同じ流れで、開いて更新して保存する、って流れになるのかと勝手に予想してみる。


次回はこれに値突っ込んでいってみるかな。




 
 // The code below opens a spreadsheet using its id and logs the name for it.
 // Note that the spreadsheet is NOT physically opened on the client side.
 // It is opened on the server only (for modification by the script).
 var ss = SpreadsheetApp.openByUrl(
     'https://docs.google.com/spreadsheets/d/abc1234567/edit');
 Logger.log(ss.getName());
 



0 件のコメント:

コメントを投稿