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

