Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save phillypb/a7e9dc248d4046bd0dcdc243bde4a57a to your computer and use it in GitHub Desktop.
Save phillypb/a7e9dc248d4046bd0dcdc243bde4a57a to your computer and use it in GitHub Desktop.
/**
* Get all Sheet data, call Function to Objectify, then loop through rows and log some items.
*/
function getPrettyData() {
// get spreadsheet
var ss = SpreadsheetApp.getActiveSpreadsheet();
// get active sheet and log name
var activeSheet = ss.getActiveSheet();
// get all data
var allData = activeSheet.getDataRange().getValues();
// remove Header row from data array
var headerRow = allData.shift();
// call Function to create JavaScript Object to pair Header name with data value for easier access
var niceArray = objectify(headerRow, allData);
// loop through new data array proving how easy it is to extract items
for (var row = 0; row < niceArray.length; row++) {
// get individual row of data
var rowOfData = niceArray[row];
// get Surname (one way)
var surname = rowOfData.Surname;
console.log("Surname is: " + surname);
// get College Name (second way)
var collegeName = rowOfData["College Name"];
console.log("College Name is: " + collegeName);
};
};
/**
* Turns an array of arrays into an array of JavaScript Objects which are much easier to work with due to their name:value pairs.
*
* For example: [["Jones", "Helen", etc],[]] into [{Surname:"Jones", Forename:"Helen", etc}]
*/
function objectify(headerRow, allData) {
// create empty array for pushing Objects into
var newarray = [];
// loop through data rows
for (var y = 0; y < allData.length; y++) {
// create empty JavaScript Object
var obj = {};
// get individual row of data
var rowOfData = allData[y];
// loop through data Headers
for (var i = 0; i < headerRow.length; i++) {
// get Header name
var headerName = headerRow[i];
// create name:value pair between each Header and data value
obj[headerName] = rowOfData[i];
};
// push into array
newarray.push(obj);
};
// return array to Parent Function
return newarray;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment