Session #171944
Using G Suite Apps Scripting
In Intro Comp Sci
Brian Gray
St. Stephen’s Episcopal School
Google for Education Certified Trainer
for Education
BrianGray.org
What is it? What can it do?
Why use it?
Who can use it?
When in class should it be used?
Where is it?
How does it work?
Online Assistance
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
WWWWWHOA!
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
What is it?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
What does it do?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Why use it in class?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Why use it in class?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Why use it in class?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
In my school
Who?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
When?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Where do we start?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Why Write Custom Functions for a Spreadsheet?
Educational:
Practical:
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
/**
* Multiplies the input value by 2.
*
* @param {number} input The value to multiply.
* @return The input multiplied by 2.
* @customfunction
*/
function DOUBLE(input) {
return input * 2;
}
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Again: Why Write Custom Functions?
Educational:
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Where? How?
An example...
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var entries = [
{ name : "Sort by First Name, Last Name",
functionName : "fNLn"
},
{ name : "Sort by Last Name, First Name",
functionName : "lNFn"
},
];
ss.addMenu("Sorting", entries);
};
Names of functions with no arguments
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
1
3
2
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
var FN = 1;
var LN = 2;
// sort by last name, first name
function lNfN(){
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange();
data.sort([{column: LN, ascending: true},
{column: FN, ascending: true}
]);
}
1-Relative Column References
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Spreadsheet
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
JavaScript is case-sensitive!
The function name must EXACTLY match the entry in the menu created by onOpen()
function onOpen() {
// ...
var entries = [
// ...
{ name : "Sort by Last Name, First Name",
functionName : "lNFn"},
];
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
1
2
3
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
The range that we sorted included row 1 - the header row.
The range must exclude that row.
Click the Undo button to revert to the unsorted list.
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Get a range that does not include row 1.
Context-based auto-complete will make this easier.
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Symbolic Debugger
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Row count is 15 (as expected)
Start at row 2 and include (15 - 1) rows
Try again!
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
TEP-TATA
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
In the Sheet class, method getRange() with three arguments:
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Get a Range with the required number of rows and columns.
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Works as expected!
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Make the same changes to the other sort method.
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Online Assistance
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Online Assistance
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
What Projects?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
What Projects?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
What Projects?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
What Projects?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
What Projects?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
What Projects?
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
WWWWWHOA!
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
When students submit files through Classroom, they lose Edit access.
Warning
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
WWWWWHOA!
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org
Session Evaluation in the TCEA Convention App
Session #171944
(links to slides and spreadsheet)
Brian@BrianGray.org
G-Suite App Scripting in Intro Comp Sci
Google for Education Certified Trainer
for Education
BrianGray.org