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ファイルを取得する
オブジェクトのキーと値をスプレッドシートに書き込みたい