75
85

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Google Apps ScriptでWeb上にあるJsonデータを取得してSpreadSheetに入力する

Last updated at Posted at 2017-06-19

tentatsuさんの週に一つくらい技術を勉強しようコーナー
今週はGoogleAppScript + SpreadSheet

2020-03-18
コードに少しミスがあったので修正

スクリプトの作り方

この辺の記事を参考にしよう!!
http://qiita.com/negito6/items/c64a7a8589faaffcfdcf

平たく言えば、SpreadSheetのメニュー > ツール > スクリプトエディタ
から新規でスクリプトを選択して作成します。

欲しいデータのあるJSONを狙う

さがしましょう。

GoogleAppScriptでJSONデータを取得する

はい、いきなり結論です。
まず、SpreadSheetのURLを入力して、オブジェクト取得します。

で、狙いしましたJSONのURLを取得、取得したキーを配列にする。

あとは


var json = UrlFetchApp.fetch(json_url).getContentText();
var jsonData = JSON.parse(json);

という超カンタンなコマンド一発でjsonとれます。
あとは煮るなり焼くなりゴニョゴニョループして・・・


sheet.getRange(i, j).setValue(shop[idx][key]);  

という形でSpreadSheetに書き込んでおしまい。

以下が全文でござる。


 //変数spreadsheetに指定のスプレッドシートオブジェクトを取得します
  var sp_url = "https://docs.google.com/spreadsheets/d/*************/";
  var spreadsheet = SpreadsheetApp.openByUrl(sp_url);

  // 適当にページングとか
  var count = 100;
  var page = 1;
  var start = ((page-1)*count)+1
  
  //JSONのURL
  var url1 = "https://json_no_url/" + "?start="+start+"&count="+count;
  var keys = {
    'id' : "",
    'name' : "",
  };
  
function myFunctionJSON() {
  // spread sheetのシート設定
  var sheet = spreadsheet.getSheetByName("sheet1");
  var json = UrlFetchApp.fetch(url1).getContentText();
  var jsonData = JSON.parse(json);
  var shop = jsonData.results.shop;

  for (var idx in shop) {
    var j=1;
    for(var key in keys) {
      var type = typeof shop[idx][key];
      sheet.getRange(i, j).setValue(shop[idx][key]);  
      j++;
    }
    i++;
  }
}

おしまい。

75
85
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
75
85

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?