Skip to content

Instantly share code, notes, and snippets.

View andrewroberts's full-sized avatar
💭
Cranking out the code... 👨‍💻

Andrew Roberts andrewroberts

💭
Cranking out the code... 👨‍💻
View GitHub Profile
@andrewroberts
andrewroberts / StackTraces-Logging-GAS.md
Last active July 7, 2017 11:58 — forked from hlecuanda/StackTraces-Logging-GAS.md
Example using Stackdriver logging for debugging a custom function for sheets in Google Apps Script. / Writing a Caching custom function

Logging custom functions using stackdriver in google apps script

Recently, console logging became available for Google Apps Script projects. It used to be impossible to use the Log service that comes with the GAS runtime, but now all you need to do is throw an exception. Exceptions get logged in stackdriver logging and when enabled, unhandled exceptions will not stop your script execution. This adds up to nearly 0 lag if you are using this feature (?) by purposely throwing exceptions, and you can get creative with your error message to avoid having to expand stackdriver's log messages (which are pretty comprehensive stacktraces!)

Setup

@andrewroberts
andrewroberts / PDFCreator_EmailAllResponses
Last active September 1, 2024 10:49
Google Apps Script to create a PDF from each of the rows in a Google Sheet
/*
PDF Creator - Email all responses
=================================
When you click "Create PDF > Create a PDF for each row" this script
constructs a PDF for each row in the attached GSheet. The value in the
"File Name" column is used to name the file and - if there is a
value - it is emailed to the recipient in the "Email" column.
@andrewroberts
andrewroberts / convertSpreadsheetToPdf.gs
Last active February 9, 2025 15:53
Convert a multi-sheet Google Spreadsheet into a PDF, with option to email it.
/*
* Save spreadsheet as a PDF
*
* Based on Dr.Queso's answer in http://stackoverflow.com/questions/30367547/convert-all-sheets-to-pdf-with-google-apps-script/30492812#30492812
*
* @param {String} email Where to send the PDF [OPTIONAL]
* @param {String} spreadsheetId Or the active spreadsheet[OPTIONAL]
* @param {String} sheetName The tab to output [OPTIONAL]
* @param {String} PdfName [OPTIONAL]
*/
@andrewroberts
andrewroberts / EmailPDFOfFormSubmission.gs
Last active September 21, 2023 06:56
Email a PDF of a Google Form submission.
/*
PDF Create - Email on form submit
=================================
This script creates a PDF populated with the values submitted in a
Google form.
The "on form submit" trigger needs to be manually created:
@andrewroberts
andrewroberts / LogAppsScriptConfig
Created August 10, 2016 22:10
Log and clear the contents of Apps Script properties, triggers, etc
/**
* Clear all of the config
*/
function clearConfig() {
Logger.log('Delete Local Script Properties:')
if (PropertiesService.getScriptProperties() !== null) {
Logger.log(PropertiesService.getScriptProperties().deleteAllProperties())
Logger.log(' Deleted')
@andrewroberts
andrewroberts / TrialBalance.gs
Last active December 17, 2017 15:27
Google Apps Script request to Xero API for trial balance - snippet for Xero Forum question
function getTrialBalancesWithNoDate() {
// .
// .
// .
fetchPublicAppData('Reports/TrialBalance', '', '') // OK
// .
// .
@andrewroberts
andrewroberts / GASWebsiteMonitor.gs
Last active August 15, 2021 16:34
Website/domain monitoring with Google Sheet and Apps Script - http://goo.gl/pHc4SC
// 34567890123456789012345678901234567890123456789012345678901234567890123456789
// JSHint - 27 Feb 2016 21:19
/* jshint asi: true */
/*
* Copyright (C) 2016 Andrew Roberts
*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
@andrewroberts
andrewroberts / CreatePDFRenameAndEmail.gs
Last active October 10, 2019 15:19
A Google Apps Script that uses the values from a Google Sheet to construct a PDF from a GDoc template. It allows you to specify a name for the file and email it to someone. This is a demo sheet: https://docs.google.com/spreadsheets/d/1jLpPtmUS8__PceJx9z5iSSaLSfENojWK7hfsH6uHa9Y/edit#gid=0. It is a development of the CreatePDF script (https://gis…
/*
PDF Create - with rename and email
==================================
When you click "Create PDF>Create PDF" this script uses the data from
the active row to construct a PDF in your GDrive. The value in the
"File Name" column is used to name the file and - if there is a
value - it is emailed to the recipient in the "Email" column.
@andrewroberts
andrewroberts / GASNeverBounce.gs
Created January 29, 2016 09:27
Google Apps Script for accessing NeverBounce RESTful API (and writing to a GSheet)
var VALID_COLUMN_INDEX = 4
var EMAIL_COLUMN_INDEX = 3
function onOpen() {
SpreadsheetApp
.getUi()
.createMenu('Validate Emails')
.addItem('Validate Sheet', 'validateEmail')
.addToUi()
}
@andrewroberts
andrewroberts / getAddress.gs
Created November 16, 2015 19:44
Google Sheets custom function to get Google's best guess at the address of a place.
function GET_ADDRESS(placeName) {
var response = Maps.newGeocoder().geocode(placeName);
return response.results[0].formatted_address 
}