Basic "New Row" Code for Google Apps Script bound to a particular type of Sheet
This file contains 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
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