Skip to content

Instantly share code, notes, and snippets.

@aarongilly
Created October 19, 2023 01:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aarongilly/78e9ea6380d1bdb3b3d23abf52b3f3e4 to your computer and use it in GitHub Desktop.
Save aarongilly/78e9ea6380d1bdb3b3d23abf52b3f3e4 to your computer and use it in GitHub Desktop.
Basic "New Row" Code for Google Apps Script bound to a particular type of Sheet
var workbook = SpreadsheetApp.getActiveSpreadsheet();
var daySheet = workbook.getSheetByName("Days");
var weekSheet = workbook.getSheetByName("Weeks");
var monthSheet = workbook.getSheetByName("Months");
var yearSheet = workbook.getSheetByName("Years");
/////////////////////////////////////////////////////
//This is the function that is triggered each night//
/////////////////////////////////////////////////////
function oneAM(){
var dataDate = new Date();
dataDate.setDate(dataDate.getDate() - 1);
//size up today data
var numRows = todaySheet.getLastRow() - 1;
//make Room for all "Today" data
timeSheet.insertRowsAfter(1,numRows);
var dest = timeSheet.getRange("A2");
//move it
todaySheet.getRange("2:" + numRows+1).copyTo(dest);
//clear up blanks
todaySheet.deleteRows(2,numRows);
//begin summaries
newDay(dataDate);
//check if room needs to be made in the week/month/year sheets
if(dataDate.getDay() == 1){ //new week condition
newWeek(dataDate);
}else{
daySheet.getRange("2:2").setBorder(false,null,false,null,null,null); //if not a new week
}
if(dataDate.getDate() == 1){ //new month condition
newMonth(dateIn);
if(dataDate.getMonth() == 0){ //new year condition
newYear(dateIn);
}
}
}
function newDay(dateIn){
//make room for new data
daySheet.insertRowBefore(firstRow);
//make it purdy
daySheet.getRange("3:3").copyTo(daySheet.getRange("2:2"));
daySheet.getRange("A2").setValue(dateIn);
}
function newWeek(dateIn){
let weekVal = weeksBetween(dateIn,new Date("4/22/2013")); // <- because 4/22/2013 was my first day of tracking
daySheet.getRange(firstRow + ":" + firstRow).setBorder(false, null, true, null, null, null);
weekSheet.insertRowBefore(firstRow);
weekSheet.getRange((firstRow + 1) + ":" + (firstRow + 1)).copyTo(weekSheet.getRange(firstRow + ":" + firstRow));
weekSheet.getRange("B" + firstRow).setValue(weekVal);
weekSheet.getRange("A" + firstRow).setValue(dateIn);
}
function newMonth(dateIn){
let monthVal = monthsBetween(dateIn,new Date("4/22/2013")) // <- because 4/22/2013 was my first day of tracking
weekSheet.getRange(firstRow + ":" + firstRow).setBorder(false, null, true, null, false, false);
monthSheet.insertRowBefore(firstRow);
monthSheet.getRange((firstRow + 1) + ":" + (firstRow + 1)).copyTo(monthSheet.getRange(firstRow + ":" + firstRow));
monthSheet.getRange("B" + firstRow).setValue(monthVal);
monthSheet.getRange("A" + firstRow).setValue(dateIn);
}
function newYear(dateIn){
let yearVal = dateIn.getYear();
monthSheet.getRange(firstRow + ":" + firstRow).setBorder(false, null, true, null, false, false);
yearSheet.insertRowBefore(firstRow);
yearSheet.getRange((firstRow + 1) + ":" + (firstRow + 1)).copyTo(weekSheet.getRange(firstRow + ":" + firstRow));
yearSheet.getRange("A" + firstRow).setValue(yearVal);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment