Google Apps Scriptでスプレッドシートの表をインスタンス配列化する方法


array

photo credit: wwward0 tokyobike(s) via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

「初心者でもわかるGoogle Apps Scriptのクラス」をテーマにシリーズ連載をお送りしております。

前回の記事はこちら。

Google Apps Scriptで即時関数にクラスを定義する理由とその方法
「初心者向けGoogle Apps Scriptでクラスを作る!」シリーズをお伝えしています。今回は、GASで即時関数にクラスを定義する理由とその方法についてお伝えします。スコープとthisが重要な役割を果たします。

クラスの定義を即時関数化しました。

さて、今回はスプレッドシートの表について、インスタンス配列化していきます。

もともと、そこが目標でしたからね。

ということで、Google Apps Scriptでスプレッドシートの表をインスタンス配列化する方法です。

では、行ってみましょう!

前回のおさらい

お題としているスプレッドシートはこちらです。

スプレッドシートのテーブル

この一行ずつを表すクラスを前回まで作成しておりました。

そのコードがこちらですね。

そして、その検証用のmyFunctionがこちら。

…まあ、そんなにたいしたことしていませんが汗。

さて、スプレッドシートの一行分のクラスを作ったのはわかったのですが、表全体はまだ上手に取り扱えていない感じです。

ということで、今回はスプレッドシートの表を取り扱えるようにしていきますよ。

スプレッドシートをインスタンスの配列として格納する

それで、GASの場合は「集合」を取り扱うのであれば、配列がすごく便利なんですよね~。

例えば、変数personsを配列として用意して、そこに各行を表すPersonクラスのインスタンスを要素として追加していけば良さそうです。

そのスクリプトがこちらです。

実行すると…

スプレッドシートの表をインスタンスの配列にしてログ出力した

おー、いい感じですね!

配列から見出し行を取り除く

5行目のshiftメソッドだけ紹介しておきますね。

これはArrayオブジェクトに用意されているメソッドで、配列の最初の要素を取り除くというものです。

Arrayオブジェクト.shift()

戻り値は取り除いた要素ですが、破壊的メソッドですので対象となるオブジェクトについて操作して変化を加えちゃいます。

変数valuesは二次元配列になっていて、最初の要素は取得した範囲の一行目、つまり見出し行の配列になっているので、それを取り除いちゃってるわけですね。

二次元配列から見出し行を取り除きたいときに、便利っすよ!

まとめ

以上、Google Apps Scriptでスプレッドシートの表をインスタンス配列化する方法でした。

GASの配列、便利っすよね!

さて、今回は配列で集合を表したわけですが、これもクラス化していきたいですよね。

次回は、そのあたりを進めていきます。

Google Apps Scriptでデータの集合を表すクラスを作成する方法
「初心者でもわかるGoogle Apps Scriptのクラス」をテーマにお送りしております。今回は、GASでスプレッドシートのデータの集合を表すクラスを作成する方法をお伝えしていきます。

どうぞお楽しみに!

連載目次:初心者向けGoogle Apps Scriptでクラスを作ろう

使いどころやそのメリットが分かりづらいGASの「クラス」。本シリーズでは、初心者でもわかるように「これでもか!」とじっくり着実にクラスとそのメリットについて解説をしていきます。
  1. 【初心者向け】Google Apps Scriptでクラスを理解するためのオブジェクトの基礎知識
  2. 初心者でもできるGoogle Apps Scriptで最も簡単なクラスを作る方法
  3. Google Apps Scriptでクラスに最も簡単なプロパティを追加する方法
  4. Google Apps Scriptでクラスに最も簡単なメソッドを追加する方法
  5. Google Apps Scriptでスプレッドシートのデータの1行分を表すクラスを作る方法
  6. Google Apps Scriptのクラスでプライベートプロパティを作成する方法
  7. Google Apps Scriptでプライベートプロパティを取得するメソッドを作成する方法
  8. GASでdefinePropertiesメソッドを使ってクラスにプロパティを定義する方法
  9. Google Apps Scriptで即時関数にクラスを定義する理由とその方法
  10. Google Apps Scriptでスプレッドシートの表をインスタンス配列化する方法
  11. Google Apps Scriptでデータの集合を表すクラスを作成する方法
  12. Google Apps Scriptで自作オブジェクトについてプロパティを追加・削除するメソッドの作り方
  13. Google Apps Scriptでオブジェクトに直接追加しているプロパティだけループする方法
  14. GASでselfを使って関数の中からインスタンスを表すthisを使えるようにする方法
  15. GASでオブジェクトのデータをスプレッドシートに反映させるメソッドの作り方

  投稿者プロフィール

タカハシノリアキ株式会社プランノーツ 代表取締役
株式会社プランノーツ代表、コミュニティ「ノンプロ研」主宰。1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ
★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ
★フォロー頂ければ嬉しいです。

タイトルとURLをコピーしました