LANG SELRCT

コードを書く場所についてはこちら

2018年6月29日金曜日

HTML ServiceでgetValuesではnullになるのでgetDisplayValuesを使った


こういうシートがあって
HITML Serviceに getValues()で値を返すとnullになったので
getDisplayValues()で返すようにしたときの備忘録です

B列のdateの値を
上部メニュー>表示形式>数字>書式なしテキスト
にするとうまくいきますが

コードで解決したいときは
getDisplayValues()
を使うと良さそう



コード.gs
function doGet () {
  return HtmlService.createHtmlOutputFromFile("index");
}

function get_value_gs () {
  var ss_url = "https://docs.google.com/spreadsheets/d/1HqeYgrE6N_YEID_R59PHWjVzT1veWPAdskcUo0e0oh4/edit#gid=0";
  var sheet = SpreadsheetApp.openByUrl(ss_url);
  var range = sheet.getRange("A1:B");
  var values = range.getValues();
  Logger.log(values);
  return values;
}



index.html
<!DOCTYPE html>
<html>
  <body>
  <script>
    get_values();
    function get_values() {
      google.script.run
        .withFailureHandler(onFailure)
        .withSuccessHandler(onSuccess)
        .get_value_gs()
    }

    function onSuccess(values) {
      alert(values);
    }

    function onFailure(e) {
      alert([e.message, e.stack])
    }
    </script>
  </body>
</html>


getValues()の場合


上記のコード.gsでget_value_gs()を実行すると
Logger.log(values)では以下のようなログが出る


ウェブアプリケーションを開くと
null



getDisplayValues()の場合

コード.gsの

var values = range.getValues()



var values = range.getDisplayValues()

に変えて以下のようにする


コード.gs
function doGet () {
  return HtmlService.createHtmlOutputFromFile("index");
}

function get_value_gs () {
  var ss_url = "https://docs.google.com/spreadsheets/d/1HqeYgrE6N_YEID_R59PHWjVzT1veWPAdskcUo0e0oh4/edit#gid=0";
  var sheet = SpreadsheetApp.openByUrl(ss_url);
  var range = sheet.getRange("A1:B");
  var values = range.getValues();
  Logger.log(values);
  return values;
}


get_value_gs()を実行すると

Logger.log(values)では以下のようなログが出る



ウェブアプリケーションを開くと
セルの値が表示される


関連記事