⛽
[GAS]スプレッドシートのJSONファイル書き出し
GAS [Google Apps Script]
スプレッドシートのJSONファイル書き出し
スプレッドシートの今開いているシートの1行目をキー、2行目以降を値とした配列データを、JSONファイルにして自分のDriveに保存してくれる。
function getRowsAsObjectsAndDownload() {
// スプレッドシートを開く
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// 全てのデータを取得する
var range = sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn());
// その範囲の値を2次元配列として取得する
var values = range.getValues();
var oldRow = [];
// 1行目の値をキーとするオブジェクトの配列を作成する
var result = values.slice(1).map(function(row) {
return values[0].reduce(function(obj, key, index) {
// 値が空だった場合にはそれ以前に存在した最後の値を代入する
obj[key] = row[index] || oldRow[index];
oldRow[index] = obj[key];
return obj;
}, {});
});
// オブジェクトの配列をJSON形式に変換する
var json = JSON.stringify(result);
// Blobとして作成する
var blob = Utilities.newBlob(json, 'application/json', 'data.json');
// BlobをGoogleドライブに保存する
var file = DriveApp.createFile(blob);
// ファイルのダウンロードURLを取得する
var url = file.getDownloadUrl();
return url;
}
Discussion