このようなシートから
このようなオブジェクトを作る
コード.gsfunction 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行目)