速報

X.Orgのクライアントライブラリーで17件を修正!Linux端末と画像処理の利用範囲を点検

CATEGORY

【GAS】JSONデータをスプレッドシートに書き込む方法

※本ページのリンクにはプロモーションが含まれています。

【GAS】JSONデータをスプレッドシートに書き込む方法

目次

本記事では、Google Apps ScriptでJSONデータをスプレッド―シートに書き込む方法をご紹介しています。JSONデータをそのまま書き込むわけではなく、オブジェクト毎に行を分けてスプレッドシートに書き込む方法をとなります。

Google Apps ScriptでJSONデータをスプレッドシートに書き込みたいな。良い方法ないかな?

上記の疑問にお答えします。

では、解説していきます。

スポンサーリンク

Google Apps ScriptでJSONデータをスプレッドシートに書き込む方法

Google Apps Script(以下GAS)でJSONデータをスプレッドシートに書き込む全体のスクリプトは下記の通りです。

function myFunction() {

  const spreadsheetId = 'SPREADSHEET_ID';
  const spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  const sheet = spreadsheet.getSheetByName("シート名");

  const json = [
    {
      'username': '田中太郎',
      'email': 'tanaka@example.jp',
      'tel': '0120123456'
    },
    {
      'username': '山田太郎',
      'email': 'yamada@example.jp',
      'tel': '0120789123'
    },
  ];

  json.forEach((obj)=>{
    let lastRow = sheet.getLastRow()+1;
    Object.keys(obj).forEach((key, index)=>{
        sheet.getRange(lastRow, index+1).setValue(obj[key]);
    });
  });
}

処理の流れは次のようになっています。

  • スプレッドシートを取得する
  • JSONデータを取得する
  • JSONデータを繰り返し処理する
  • JSONデータをスプレッドシートに書き込む

全体のスクリプトではわかりにくい部分があると思いますので、要所でまとめて処理内容を詳しく解説していきます。

スプレッドシートを取得する

Google Apps Scriptでスプレッドシートを取得します。スプレッドシートの取得方法には複数選択肢がありますが、ここではIDを使ってスプレッドシートを取得しています。

//スプレッドシートID
const spreadsheetId = 'SPREADSHEET_ID';
//スプレッドシートを取得する
const spreadsheet = SpreadsheetApp.openById(spreadsheetId);
//スプレッドシートから対象のシートを取得する
const sheet = spreadsheet.getSheetByName("シート名");

getSheetByName()の引数に指定しているシート名は、実際のシート名(デフォルトでは「シート1」)を指定してください。

参考:SpreadsheetApp openById();

スポンサーリンク

JSONデータを取得する

JSONデータを取得します。JSONデータは基本的に外部から取得することになると思いますが、ここではファイル内で定義した簡単なJSONデータを使用します。実際にはAPIを叩いた結果等に差し替えて利用することになると思います。

//JSONデータ
const json = [
  {
    'username': '田中太郎',
    'email': 'tanaka@example.jp',
    'tel': '0120123456'
  },
  {
    'username': '山田太郎',
    'email': 'yamada@example.jp',
    'tel': '0120789123'
   },
];

JSONデータを繰り返し処理する

JSONデータを繰り返し処理でオブジェクトに分けて処理します。JSONデータ内のオブジェクトの中身が増減しても対応できるように繰り返し処理を使って処理します。

//JSONデータ繰り返し処理
json.forEach((obj)=>{

  //JSONデータのオブジェクトのキーを取得して繰り返し処理
  Object.keys(obj).forEach((key, index)=>{
      //add script    
  });

});

スポンサーリンク

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

JSONデータをスプレッドシートに書き込みます。シートの最終行を取得し、最終行の次の行にJSONデータのオブジェクトの内容を書き込みます。データの書き込み後、繰り返し処理が終わるまで隣のカラムに移動するように処理します。

//JSONデータ繰り返し処理
json.forEach((obj)=>{

  //シートの最終行取得
  let lastRow = sheet.getLastRow()+1;

  //JSONオブジェクトのキーを取得して繰り返し処理
  Object.keys(obj).forEach((key, index)=>{

    //列を隣に移動してセルに値を書き込む
    sheet.getRange(lastRow, index+1).setValue(obj[key]);

  });

});

スクリプトを実行すると、スプレッドシートに下記のデータが書き込まれます。

田中太郎 tanaka@example.jp 0120123456
山田太郎 yamada@example.jp 0120789123

これでJSONデータをスプレッドシートに書き込むことができました。

最後に

Google Apps Scriptをスプレッドシートを組み合わせることで、JSONのような構造化データを視覚的に見やすい形式にすることが可能となります。JSONだけではなくCSVでもできますので、今度はCSVを使用したスクリプトについてもご紹介できればと思います。

以上、Google Apps ScriptでJSONデータをスプレッドシートに書き込む方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、これまでに100以上のWordPressサイトの構築・保守を担当してきました。Webサイト制作に加え、アプリ開発やAIを活用した開発にも取り組み、近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
WordPress / PHP / JavaScript / アプリ開発 / Webサイトの運用・セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

スポンサーリンク

関連する記事

おすすめの書籍