GASクレーム対応 getDisplayValues()

スプレッドシートに入力しているデータの先頭の'0'が、いつの間にか消えてしまうとクレームが来た。 スプレッドシートのデータは処理速度の問題で、一旦2次元配列(メモリ)に取り出して、処理を終えると書き戻すと云うのが、GASの標準的な作法になっている。 ずっとこの方法を取っていたのだけど、 書式なしのテキスト表示(書式設定)している先頭に’0’が付いたデータを配列に取り出し、シートに書き戻すと先頭の’0’が消えてしまうことがわかった。 最初、なぜ’0’が消えるのかわからなくて、書式設定が書き換わるせいかと思っていたのだけど、どうもそうではないことに気づいた。 ググってみると、getDisplayValues()という関数があることが分かった。 ずっとgetValues()という関数しか使っていなかったし、書式が無視されて配列に格納されることを知らなかった。 どうやらgetDisplayValues()を使うと、セルに表示されている見た目通りの値が配列に格納されるらしい。 デバッグのときは、getValues()で上手くいったたのに、リリース後に起きたのが腑に落ちないけど、getDisplayValues()に修正したのでこれで大丈夫だと思われ。
--
はれ のち くもり いちじ あめ

No comments: