Edited at

Google Apps Script でスプレッドシートから Rails の Seed(seed-fu)を生成する

More than 1 year has passed since last update.

こんなスプレッドシートがあるとして、

スクリーンショット 2018-01-28 12.00.13.png

「スクリプトエディタ」から、

スクリーンショット 2018-01-28 12.04.34.png

以下のような関数を作って実行する。

function companySeed () {

const COL_INDEX_COMPANY_ID = 0;
const COL_INDEX_COMPANY_NAME = 1;

var sheet = SpreadsheetApp.getActiveSheet();
var lastRowNumber = sheet.getLastRow();
var lastColNumber = sheet.getLastColumn();

// 見出し行は除く
var range = sheet.getRange(2, 1, lastRowNumber - 1, lastColNumber);
var values = range.getValues();

var seeds = values.map(function(row) {
var output = "";
output += "Company.seed do |s|\n"
output += " s.id = " + row[COL_INDEX_COMPANY_ID] + "\n";
output += " s.name = '" + row[COL_INDEX_COMPANY_NAME] + "'\n";
output += "end\n";
return output;
});

Logger.log(seeds.join("\n"));;
}

実行後、ログを表示すると、

スクリーンショット 2018-01-28 12.06.02.png

できあがり。

スクリーンショット 2018-01-28 12.11.37.png

最終的にログからコピペなのがかっこ悪いので、もうちょいなんとかしたいが…。