より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

GASのgetValuesとgetDisplayValuesの違いは日付の扱いを見ると如実

GAS(Google Apps Script)でスプレッドシートの値をとるときにはgetValue,getValuesを使われることが多いと思います。

developers.google.com

実は、getDisplayValue,getDisplayValuesという関数も存在します。

getDisplayValueはスプレッドシートの設定が適用された値となります。

日付の扱いを見るとわかりやすいです。

以下のようなコードを書きます。

// 関数を実行するメニューを追加
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  var menu = ui.createMenu('スクリプト実行');
  menu.addItem('テスト', 'myFunction');
  menu.addToUi();
}

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:A1");
  Logger.log(range);
  var value = range.getValue();
  var displayValue = range.getDisplayValue();
  Browser.msgBox("getValue=" + value + "\n" + "getDisplayValue=" + displayValue);
}

f:id:rimever:20200901202657p:plain
getValue=Fri Aug 28 2020 00:00:00 GMT+0900 (日本標準時) getDisplayValue=2020/08/28

といった結果になります。

getValueで取得できる値では扱いづらいので注意です。

パーセンテージだとgetValueであれば0.01、getDisplayValueでは1%なので、getValueの方がプログラムで扱いやすいでしょう。

スプレッドシートにどのようなデータが入っているか把握して使い分けることも考えないとならないでしょう。