AppSheetを使っていると、マスターとなっているスプレッドシートで列と列の間に新しい列を追加したいときがあります。
こういったときに、思いのままにスプレッドシートの既存の列の間に列を挿入してもいいのでしょうか?挿入した場合、既存の列が消えたりするのか?一体、何が起こるのかについてまとめています。
結論
最初に結論から言うと、スプレッドシート上に列を追加しても、AppSheetのアプリに影響はありません。
追加した列がきちんと追加した場所に新しいカラムとして追加されます。
また、既存のカラムが消えることもなく、既存のカラムに設定していたFORMULAやINITAL VALUE、SCAN?、REQUIRE?などの設定ももとのまま残ります。
ありがたい仕様です。
実例(ソース元のスプレッドシートで列と列の間に新らしい列を追加)
例えば、スプレッドシートの「ユーザー一覧」シートに「メールアドレス」と「携帯電話番号」という列があるとします。
AppSheet上では以下のようになっています。なお、AppSheet上のカラムでは列を追加した後に、他の列のスキーマが壊れないかを見るために、FORMILAやSCAN?などの設定を上下のカラムに適当に追加しています。
この状態で、スプレッドシートに新しく「コンタクト」という列を追加します。
この状態で「Regenerate Schema」を実行して、AppSheetのスキーマを更新します。すると、スプレッドシート上に追加したカラムが、AppSheet上に追加されます。
ここでポイントとなるのは、既存のカラムやそのカラムのFORMULAやSCAN?などの設定はリセットされずにそのまま残るということです。
つまり、元となっているスプレッドシートに列を追加したくなったら、思いのままに列を追加してもAppSheetのアプリには影響ないということです。
ありがたい仕様です。
注意点
スプレッドシートで既存の列と列の間に新しい列を追加するときに注意しなければいけないことがあります。
それはキー(KEY?)に「_RowNumber」のように列番号を指定していた場合に、各カラムに割り当てられているキーがズレるということです。
AppSheetの公式ページでもキーに「_RowNumber」を設定することは避けるよう明記されています。