📝

#72 【GAS】スプレッドシートの内容を読み取ってGASのログに出力してみた

2024/11/14に公開

はじめに

今回は、スプレッドシートに保存した内容をGASを使って読み取り、ログに出力してみました。
GASとスプレッドシートを用いてDBの代わりのように使えるそうなので、その前段階としてデータの取得を行ってみます。

手順

注意点

スプレッドシートには列数行数の制限や処理速度の問題があり、大量のデータを扱うには向いていません。
また、スプレッドシートをDBとして使用する場合、アクセス権の設定に気を付けてください。

1.スプレッドシートを準備する

スプレッドシートに"Sheet1"(※)という名前のシートを作成し、データを入力します。
※後述のコードでシート名を指定する必要があるので、あえて"Sheet1"という名前にしています。
※コード内の名前とシート名が一致していればよいです。
image.png

各列はデータのフィールド、各行はレコードを表しています。

id name address occupation

今回は、4つのフィールドを作成しました。

2.GASを使ってスプレッドシートのデータを読み込む

GASを使用して、スプレッドシート内のデータにアクセスします。
スプレッドシートのヘッダー>拡張機能>Apps Script
を押下でGASが開きます。
image.png

以下のコードを自身で作成したスプレッドシートの内容に合うよう修正してエディタに入力してください。

function readData() {
  // 作成したシート"Sheet1"を取得する
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  // シートからデータの範囲を取得する
  var dataRange = sheet.getDataRange();
  // データ範囲からデータ(値)を取得
  var dataValues = dataRange.getValues();
  
  // 取得したデータ(値)をループ、ログに出力
  // ヘッダー行を出力しないようにするため i=1 から開始する
  for (var i = 1; i < dataValues.length; i++) {
    var row = dataValues[i];
    // row[0] (id : A列)は今回出力したくないため飛ばす
    var name = row[1]; // B列
    var address = row[2]; // C列
    var occupation = row[3]; // D列
    Logger.log("名前: " + name + ", 住所: " + address + ", 職業: " + occupation);
  }
}

入力後、「実行する関数を選択」で作成した関数名が選択されていることを確認してください。
上記のコードの場合は「readData」が選択されているようにします。
image.png

「プロジェクトを保存」を押下⇒「選択した関数を実行」を押下で関数が実行されます。

実行結果

実行すると、スプレッドシートに入力したデータがきちんとログに出力されました。
image.png

最後に

今回はGASを使ってスプレッドシートの値を取得するところまで行ってみました。
今度、実際にAPIとしてWebアプリ側から呼び出せるようにしてみたいと思います。
ご覧いただきありがとうございました。

Discussion