こんにちは、Ryohei(@ityryohei)です!

本記事では、Google Apps Scriptでスプレッドシート内の全データを取得する方法をご紹介しています。

Google Apps Scriptでスプレッドシート内の全データを取得するにはどうすればいいんだろう?

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

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

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

Google Apps Scriptで対象のスプレッドシートを取得します。ここではスプレッドシートのIDからスプレッドシートオブジェクトを取得します。

Google Apps Script

function myFunction() {
  const sheetId = 'SPREADSHEET_ID';
  const sheet = SpreadsheetApp.openById(sheetId);
}

スプレッドシートのIDは下記キャプチャのようにスプレッドシートのURLから確認できます。URL内の英数字記号の文字列がスプレッドシートのIDです。

上記で取得したスプレッドシートのIDをコピーし、スクリプト内のSPREADSHEET_IDに置き換えてご利用ください。

参考:SpreadsheetApp|openById();

スプレッドシート内の全データを取得する

前項で取得したスプレッドシートオブジェクトから、シート内の全データを取得します。getDataRange()でスプレッドシートのレンジ(範囲)を取得し、getValues()でレンジ内の値を取得します。戻り値は二次元配列なので、forEach等を使ってデータを出力することができますね。

Google Apps Script

function myFunction() {
  const sheetId = 'SPREADSHEET_ID';
  const sheet = SpreadsheetApp.openById(sheetId);
  const range = sheet.getDataRange();
  const values = range.getValues();

  console.log(values);
}

実行結果(ダミーユーザーデータ)

Logging output too large. Truncating output.
[ 
  [ '氏名',
    '氏名(ひらがな)',
    '年齢',
    '生年月日',
    '性別',
    'メールアドレス',
    '電話番号',
    '郵便番号',
    '住所'
  ],
  [ '西村 須美子',
    'にしむら すみこ',
    24,
    Fri Aug 14 1998 00:00:00 GMT+0900 (Japan Standard Time),
    '女',
    'nishimura_814@example.jp',
    '03-8211-4105',
    '178-3319',
    '東京都東村山市野口町1-4-12'
  ]
]

参考:Spreadsheed|getDataRange();
  :Spreadsheed Range|getValues();

最後に

現在携わっている案件でGoogle Apps Scriptを触る機会がありまして、触っているうちに楽しくなり色々作ってみて遊んでいます。Googleのサービスは世界中で使われているというのもあり、ドキュメントもわかりやすくまとめられているため、JavaScriptが読み解ける方であればすんなり習得できると思います。

Google Apps Scriptは文字通りGoogleのサービスの連携に特化したスクリプト言語です。Google Apps Scriptで処理が組めるようになれば、Googleのサービスをさらに便利に使うことができるようになります。例えばフォームとカレンダーを組み合わせて予約システムを構築したり、スプレッドシートとGmailを使ってメール配信サービスを構築したり、構築できるサービスは様々です。

ほんとびっくりするくらい簡単に構築できるので、もし興味がある方はGoogle Apps Scriptに触れてみてくださいね。

以上、Google Apps Script(GAS)でスプレッドシート内の全データを取得する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。