Created
March 10, 2025 15:08
-
-
Save phillypb/a7e9dc248d4046bd0dcdc243bde4a57a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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