LANG SELRCT

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

2018年1月9日火曜日

シートのデータから配列とオブジェクトを作りたい


このようなシートから


このような配列とオブジェクトを作ってみます
 [{
   hira = [あいうえお],
   kana = [アイウエオ]
 }, {
   hira = [かきくけこ],
   kana = [カキクケコ]
 }, {
   hira = [さしすせそ],
   kana = [サシスセソ]
 }]



コード.gs
function get_array() {
  var data = get_values();
  var hiras = data[0];
  var kanas = data[1];
  var array = create_array(hiras, kanas);
  Logger.log(array);
  Logger.log(array[2]["hira"]);
}

function create_array(hiras, kanas) {
  var array = [];
  for (var i = 0; i < hiras.length; i++) {
    var obj = {}
    obj["hira"] = hiras[i];
    obj["kana"] = kanas[i];
    array.push(obj);
  }
  return array;
}

function get_values() {
  var ss_url = "SS_URL";
  var ss = SpreadsheetApp.openByUrl(ss_url);
  var sheet = ss.getSheets()[0];
  var last_row = sheet.getLastRow();
  var hiras = sheet.getRange("A1:A" + last_row).getValues();
  var kanas = sheet.getRange("B1:B" + last_row).getValues();
  var data = [hiras, kanas];
  return data;
}
意訳
この機能がやること
get_values()を実行して
返ってきた値の0番目のデータを取得し
返ってきた値の1番目のデータを取得し
create_arrayに渡して
返ってきた配列をログに出す
返ってきた配列の2番目のhiraをログに出す


この機能がやること
空の配列を用意する
受け取ったhirasの要素の数だけ以下を繰り返す
オブジェクトを作って
hirasの要素をひとつずつhiraに入れて
kanasの要素をひとつずつkanaに入れて
arrayに追加する

すべてが追加されたarrayを返す


この機能がやること
スプレッドシートのURLを指定して
開いて
先頭のシートを取得して
データが入っている最終行を取得して
A列のデータを取得し
B列のデータを取得し
配列に入れて
返す




実行するとこのようなログが出ます

Logger.log(array[2]["hira"]);
のように配列からデータを取り出すと

[さしすせそ] が取得できています


array[0]["hira"] なら [あいうえお]
array[1]["kana"] なら [カキクケコ]

を取得できます