GoogleスプレッドシートからINSERT文を生成するGoogle Apps Scriptのメモ。
以下のように表を選択した状態で
実行すると、こんな感じにINSERT文を別シートに生成するGoogle Apps Scriptです。
コードは以下の通り。
function create_insert() {
var headerRowIndex = 1;
var firstValuesRowIndex = headerRowIndex + 1;
var range = SpreadsheetApp.getActiveRange();
var cells = range.getValues();
var numRows = range.getNumRows();
var numColumns = range.getNumColumns();
var tableName = cells[0][0];
var columnNames = [];
for (var i = 0; i < numColumns; i++) {
columnNames.push(cells[headerRowIndex][i]);
}
var prefix = "INSERT INTO " + tableName + " (" + columnNames.join(",") + ") VALUES (";
var newSheet = range.getSheet().getParent().insertSheet();
var targetCell = newSheet.getActiveCell();
for (var i = firstValuesRowIndex; i < numRows; i++) {
var values = [];
for (var j = 0; j < numColumns; j++) {
values.push(cells[i][j]);
}
targetCell.setValue(prefix + values.join(",") + "); ");
targetCell = targetCell.offset(1, 0);
}
}