こういうオブジェクトたちがいて
var objs = [
{"en": "Aries", "ja": "おひつじ座"},
{"en": "Taurus", "ja": "おうし座"},
{"en": "Gemini", "ja": "ふたご座"},
{"en": "Cancer", "ja": "かに座"},
{"en": "Leo", "ja": "しし座"},
{"en": "Virgo", "ja": "おとめ座"},
{"en": "Libra", "ja": "てんびん座"},
{"en": "Scorpius", "ja": "さそり座"},
{"en": "Sagittarius", "ja": "いて座"},
{"en": "Capriconus", "ja": "やぎ座"},
{"en": "Aquarius", "ja": "みずがめ座"},
{"en": "Pisces", "ja": "うお座"}
];
スプレッドシートへこのように入れたい
ということを実現するコードを書きました。
以下のコード.gsで var ss_url の SPREADSHEET_ID を変更してrun()を実行すると
指定したスプレッドシートの先頭シートに上記画像のように入力されます。
JSON を parse した objs を用意して使うことを想定しています。
コード.gs
function run() {
var ss_url = 'https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0';
var ss = SpreadsheetApp.openByUrl(ss_url);
var sheet = ss.getSheets()[0];
var objs = returnObjs();
objsToSheet(objs, sheet);
}
function objsToSheet(objs, sheet) {
var obj = objs[0];
var keys = Object.keys(obj);
var arrays = [keys];// keysを一行目に入れておく
for(var i = 0; i < objs.length; i++) {
var obj = objs[i];
var values = [];
for(var j = 0; j < keys.length; j++) {
var value = obj[keys[j]];
values.push(value);
}
arrays.push(values);
}
setDataToSheet(sheet, arrays)
}
function setDataToSheet(sheet, arrays){
var last_row = sheet.getLastRow();
var start_row = last_row + 1;
var start_col = 1;
var num_rows = arrays.length;
var num_cols = arrays[0].length;
var range = sheet.getRange(start_row, start_col, num_rows, num_cols);
range.setValues(arrays);
}
function returnObjs() {
var objs = [
{"en": "Aries", "ja": "おひつじ座"},
{"en": "Taurus", "ja": "おうし座"},
{"en": "Gemini", "ja": "ふたご座"},
{"en": "Cancer", "ja": "かに座"},
{"en": "Leo", "ja": "しし座"},
{"en": "Virgo", "ja": "おとめ座"},
{"en": "Libra", "ja": "てんびん座"},
{"en": "Scorpius", "ja": "さそり座"},
{"en": "Sagittarius", "ja": "いて座"},
{"en": "Capriconus", "ja": "やぎ座"},
{"en": "Aquarius", "ja": "みずがめ座"},
{"en": "Pisces", "ja": "うお座"}
];
return objs;
}
|
関連記事
スプレッドシートからJSONファイルを作ってGoogleドライブに保存する(keyは1行目)