Googleスプレッドシートを自動化!GASを使ってJSONデータを書き込む方法

GASでJSONデータをスプレッドシートに書き込みたいんだけど、どうやってやればいいんだろう…難しそうだなぁ。
猫男
猫男
catman
catman
安心するんだ、GASガイドのcatmanが教えるさ。JSONデータをスプレッドシートに書き込む方法を一緒に見ていこう。

 

JSONデータとは何か?

JSON(JavaScript Object Notation)は、データを保存しやすく、また送受信しやすいテキストベースのフォーマットだ。GASでもJSONデータを扱う場面はよくある。

JSONの基本的な書き方

JSONはキーと値のペアでデータを表現する。


{
  "name": "タロウ",
  "age": 25,
  "city": "Tokyo"
}

このように、オブジェクト風にデータをまとめている。

なぜJSONをGASで使うのか

GASでは、GoogleスプレッドシートにAPIや外部データを取り込む際にJSON形式のデータを利用することが多い。データの構造がシンプルなため、変換や処理がしやすいからだ。

 

GASを使ってJSONデータをスプレッドシートに書き込む

GASでは、JSONデータをスプレッドシートに書き込むプロセスをスムーズに行える。

GASでスプレッドシートにアクセス

まずはスプレッドシートを開き、そのシートにアクセスする必要がある。


function openSpreadsheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  return sheet;
}

SpreadsheetApp.getActiveSpreadsheet()で現在のスプレッドシートを取得し、getActiveSheet()でアクティブなシートを取得している。

JSONデータを書き込む

では、JSONデータを書き込む方法だ。


function writeJsonToSheet() {
  var sheet = openSpreadsheet();
  var jsonData = [
    {"name": "タロウ", "age": 25, "city": "Tokyo"},
    {"name": "ジロー", "age": 30, "city": "Osaka"}
  ];
  
  for (var i = 0; i < jsonData.length; i++) {
    sheet.appendRow([jsonData[i].name, jsonData[i].age, jsonData[i].city]);
  }
}

appendRow()メソッドを使って、JSONデータの各オブジェクトをスプレッドシートに書き込んでいる。配列やオブジェクトを操作してデータを取り出すところがポイントだ。

 

なるほど、これでJSONデータを簡単にスプレッドシートへ書けるようになった気がします!ありがとうございます、catman。
猫男
猫男
catman
catman
自信を持つんだ。慣れればどんなデータもGASで操作できるさ。この調子でどんどん挑戦してみよう。

 

JSONデータをスプレッドシートに書き込む練習問題

以下のJSONデータをスプレッドシートに書き込んでみてほしい。


[
  {"product": "ノート", "price": 200, "quantity": 3},
  {"product": "ペン", "price": 100, "quantity": 10}
]

スプレッドシートには、各オブジェクトのproduct、price、quantityを1行に書き込むように実装してみよう。

 

練習問題の解答・解説


function writeProductToSheet() {
  var sheet = openSpreadsheet();
  var jsonData = [
    {"product": "ノート", "price": 200, "quantity": 3},
    {"product": "ペン", "price": 100, "quantity": 10}
  ];
  
  for (var i = 0; i < jsonData.length; i++) {
    sheet.appendRow([jsonData[i].product, jsonData[i].price, jsonData[i].quantity]);
  }
}

このスクリプトでは、forループを使って、product、price、quantityの各プロパティをappendRow()でスプレッドシートの新しい行として追加している。GASとスプレッドシートの連携が実際にどのようにできるかを示している。