Skip to content

Instantly share code, notes, and snippets.

@DominicBreuker
Last active July 6, 2017 20:13
Show Gist options
  • Save DominicBreuker/302a58cf1eae14173a06b22612014ec6 to your computer and use it in GitHub Desktop.
Save DominicBreuker/302a58cf1eae14173a06b22612014ec6 to your computer and use it in GitHub Desktop.
function createNewRowAndWriteToSheet(parameters) {
var sheet = getSheet();
var headers = getHeaders(sheet);
var newRow = createRow(headers, parameters);
callWithScriptLock(writeRowToSheet, sheet, newRow);
return newRow;
}
function getSheet() {
var spreadsheet = SpreadsheetApp.openById(SCRIPT_PROPERTIES.getProperty("spreadsheetId"));
return spreadsheet.getSheetByName(SCRIPT_PROPERTIES.getProperty("sheetName"));
}
function getHeaders(sheet) {
return sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
}
function createRow(headers, parameters) {
var row = [];
for (i in headers){
if (headers[i] == "timestamp"){
row.push(new Date());
} else {
row.push(parameters[headers[i]]);
}
}
return row;
}
function writeRowToSheet(sheet, row) {
var nextRow = sheet.getLastRow()+1;
sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment