Googleドライブ内にあるこのようなJSONファイルを
このようにスプレッドシートへ書き出したい
ということを実現したくて書いたコードです。
JSON_FILE_ID と SPREADSHEET_URL を設定して
run()を実行すると上記画像のようにJSONデータがシートに入力されます。
コード.gs
var file_id = "JSON_FILE_ID";
var ss_url = 'SPREADSHEET_URL';
function run() {
var ss = SpreadsheetApp.openByUrl(ss_url);
var sheet = ss.getSheets()[0];
var objs = getObjs();
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 getObjs() {
var file = DriveApp.getFileById(file_id);
var blob = file.getBlob()
var data = blob.getDataAsString();
var jobj = JSON.parse(data);
return jobj;
}
|
関連記事
Googleドライブ内のJSONファイルを取得する
オブジェクトのキーと値をスプレッドシートに書き込みたい

