GithubAPIを使ってスプレッドシートに稟議書一覧を表示する 〜その3 SpreadsheetAppsでsheetに張り付け〜 

GAS

前回までのおさらい

ゴールイメージは覚えていますでしょうか?今回はゴールを目指します。

前回はUrlfetchしてから、スプレッドシートに表示するためのデータを配列に格納する部分を説明しました。

コード全体像のおさらい

コードの全容は以下でした。前回はfor(var i=….までで利用されている、③urlFetchAppの内容④配列の加工について説明しました。

function setTitleFromGithub() {
  
  //github_apiで稟議書ファイルを取得。利用するAPIはContents APIで一旦一覧取得
  var url = "https://api.github.com/repos/{User_name}/{repository_name}/contents/";
  var token = PropertiesService.getScriptProperties().getProperties();
  
  var option = {
    method: 'get',
    contentType: 'application/json; charset=utf-8',
    muteHttpExceptions: true,
    "headers": {"Authorization": "token " + token.github_token}
  };
  
  // UrlFetchでデータを取得して、JSONデータをパースする
  var response = UrlFetchApp.fetch(url,option);
  var datas = JSON.parse(response);
  
  // datasをスプレッドシートに入力できるように一次配列にする
  var data = [];
  for(var i = 0; i < datas.length; i++){
    data.push([i,datas[i].path]);
  }
  
  //対象となるシートを指定して、データを貼り付ける
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(1,1,data.length,data[0].length).setValues(data);

}

step5: SpreadsheetAppでGASスプレッドシートクラスを始める

管理部がもっともGoogle productの中で利用する頻度が高いのは、スプレッドシートではないでしょうか。GASでも同様にSpreadsheetAppが利用する頻度が高くなってくると思います。ここでは、コンテナバインド型でスクリプトコードを記載しているので、以下のコードでアクティブなシートを取得します。

var sheet = SpreadsheetApp.getActiveSheet();

このコードは、コンテナバインド型でしか利用できません。スタンドアロン型で実施する場合は、以下のようにスプレッドシートの指定→シートの指定をする流れになります。

var sheet = SpreadsheetApp.openById("スプレッドシートid").getSheetByName("シート名");

最初よく間違えるのは、SpreadsheetAppにおいては、スプレッドシートを選択してから、シートをセレクトするという手順です。

プログラミングであるため、基本順をおって、スプレッドシート→各シート→シート内のセル、という流れに慣れていく必要があります。

sheetクラスに対して、getRange/setValuesでシートに値を貼り付ける

さて、先ほどのsheetという変数に対象のシート(スプレッドシートではなく、シート)を選択しています。続いては、シート内の対象となるセルを選択して、そこに値を張り付けていきます。

sheet.getRange(1,1,data.length,data[0].length).setValues(data);

getRange(開始行、開始列、終了行、終了列)という形になります。

変数dataにはGithubから取得して連番とファイル名を入れた配列が含まれています。忘れた方は、過去の記事を見返してください。

その配列の要素数(data.length)を取得して、最終行数にします。また、列については、data[0].lengthで、1つ目の配列の要素数を取得して列の最終としています。ここは、配列の考え方を勉強する必要がありますが、それは別途基礎編等の別記事でご説明させていただきますので、一旦はこのまま暗記してもらってもいいかと思います。これは、この先長く使い続ける方法になります。

そして最後にsetValues(data)で、getRangeで取得した範囲にデータを貼り付けるという形です。

GASの数値取得関係は、主にget…/set…でデータを取得する・貼り付けるという方法になります。

まとめ

5回の連載になりましたが、Githubで作成した稟議書データをAPIで取得して、スプレッドシートに貼り付けるところまでたどり着きました。細かい部分では、説明できていないものもありますが、この連載通りに作業していただければ、皆さんもデータを取得してシートに貼り付けるということが可能になります。ぜひ、初めの一歩として参考にして進めていただければと思います。

連載目次: Githubで稟議書作成管理シリーズ

  1. Githubを使って稟議書作成管理をしてみる
  2. Github稟議書管理をGASでスプレッドシート上に台帳にする
  3. GithubAPIを使ってスプレッドシートに稟議書一覧を表示する
  4. GithubAPIを使ってスプレッドシートに稟議書一覧を表示する〜その2 UrlfetchとArray利用〜
  5. GithubAPIを使ってスプレッドシートに稟議書一覧を表示する〜その3 SpreadsheetAppsでsheetに張り付け〜
GAS業務効率化
スポンサーリンク
シェアする
ks_Accountingをフォローする
経営管理deプログラミング

コメント