LANG SELRCT

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

2018年2月8日木曜日

スプレッドシートで1行目をkeyにしたオブジェクトを作る


このようなシートから


このようなオブジェクトを作る



コード.gs
function get_obj_array(){
  var values = get_values();
  var keys = values.shift();
  var array = get_array(values, keys);
  Logger.log(array);
}

function get_values() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getDataRange();
  var values = range.getValues();
  return values;
}

function get_array(values, keys){
  var array = [];
  for (var i = 0; i < values.length; i++) {
    var obj = create_obj(values[i], keys);
    array.push(obj)
  }
  return array;
}

function create_obj(values, keys) {
  var obj = {}
  for (var j = 0; j < keys.length; j++) {
    obj[keys[j]] = values[j];
  }
  return obj;
}
意訳
この機能がやること
get_values()でシートの値を取得して
1行目をオブジェクトのキーとして抜き出して
get_array()に残りの値(2行目以降)とkeysを渡して
返ってきたarrayをログに出す


この機能がやること
対象のシートを取得して
データが入っている範囲を取得して
値を取得して
返す


この機能がやること
結果を入れる配列を用意して
渡されたvaluesの数だけ以下を繰り返す
valuesの値を一つずつcreate_objにkeysと一緒に渡して
返ってきたobjをarrayに追加する

繰り返し処理でobjが追加されたarrayを返す


この機能がやること
空のオブジェクトを用意して
渡されたkeysの数だけ以下を繰り返す
keysの値とvaluesの値でオブジェクトを作る

出来上がったオブジェクトを返す



関連記事

スプレッドシートからJSONファイルを作ってGoogleドライブに保存する(keyは1行目)