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 / 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 / PDFCreator_SendMultiplePDFs.gs
Last active November 15, 2020 19:43
Google Apps Script for creating and emailing multiple PDFs using data from a Google Sheet and a Google doc template.
/*
PDF Creator - Send multiple PDFs
================================
On selecting a number of contiguous rows and clicking "Create PDFs > Create PDFs
for selected rows" this script constructs a PDF for each selected row in the
attached GSheet.
The value in the "File Name" column is used to name the file and - if there is a
@andrewroberts
andrewroberts / FuzzySet.gs
Created September 8, 2020 09:03
FuzzySet (https://glench.github.io/fuzzyset.js/) with a bit of re-packaging for use with Google Apps Script
/**
* @param {string} value - value to test
* @param {array} valuesToTest
*
* @return the best match in the test array
*/
function getBestMatch(value, valuesToTest) {
var results = {}
@andrewroberts
andrewroberts / generateRandomString.gs
Last active July 26, 2020 16:01
Generate a random string of length n
function generateRandomString(n) {
var chars = ['a', 'b','c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
chars.push('A', 'B', 'C', 'D', 'E', 'F','G','H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
var randomString = '';
for (i=0; i < n; i++) {
r = Math.random();
r = r * 61;
r = Math.round(r);
randomString = randomString + chars[r];
}
@andrewroberts
andrewroberts / formatString.js
Created February 14, 2020 07:26
JavaScript function to format various value types as a string.
function testNumber() {
var value = 1234.56789
var a = format(value, {numberOfDecimalPlaces: 2})
debugger
}
function testDate() {
var value = new Date()
var a = format(value)
@andrewroberts
andrewroberts / Log.gs
Last active January 4, 2020 14:32
A simple wrapper for the BetterLog Google Apps Script Library - GAS Library MqTFuiXcPtS5rVUZ_jC9Z4tnfWGfgtIUb
// 34567890123456789012345678901234567890123456789012345678901234567890123456789
// JSHint: 22 March 2015 08:56 GMT
// Unit Tests: 22 March 2015 08:50 GMT
/*
* Copyright (C) 2015-2017 Andrew Roberts (andrew@roberts.net)
*
* 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 / Terrain.gas.js
Created February 14, 2015 17:24
Generates terrain values for a 257x257 Google sheet
function onOpen() {
SpreadsheetApp
.getUi()
.createMenu('Terrain')
.addItem('Generate terrain map', 'createTerrain')
.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 
}
@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
// .
// .