Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save sreejithbnaick/04c84b0413b7b0860e1c85f63379bcb2 to your computer and use it in GitHub Desktop.

Select an option

Save sreejithbnaick/04c84b0413b7b0860e1c85f63379bcb2 to your computer and use it in GitHub Desktop.
Google App script - Automatically add Today Date column to all sheets on sheet open. Also UI options for the same
function onOpen() {
var ui = SpreadsheetApp.getUi();
checkAndAddTodayColumnForAllSheets();
ui.createMenu('Actions')
.addItem('Add Today Column - All sheets', 'checkAndAddTodayColumnForAllSheets')
.addItem('Delete Today Column - All sheets', 'deleteTodayColumnForAllSheets')
.addItem('Add Today Column', 'checkAndAddTodayColumnForActiveSheet')
.addItem('Delete Today Column', 'deleteTodayColumnForActiveSheet')
.addToUi();
}
function sameDay(d1, d2) {
return d1.getFullYear() === d2.getFullYear() &&
d1.getMonth() === d2.getMonth() &&
d1.getDate() === d2.getDate();
}
function checkAndAddTodayColumnForAllSheets(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for( i=0;i<sheets.length;i++){
var sheet = sheets[i];
checkAndAddTodayColumn(sheet);
}
}
function checkAndAddTodayColumnForActiveSheet(sheet){
var sheet = SpreadsheetApp.getActiveSheet();
checkAndAddTodayColumn(sheet);
}
function checkAndAddTodayColumn(sheet){
var values = sheet.getRange('a1').getValues();
var sheetDate = new Date(values[0][0]);
var today = new Date();
var isSameDay = sameDay(today,sheetDate);
if(!isSameDay){
sheet.insertColumnBefore(1);
sheet.getRange('a1').setValue(new Date());
sheet.autoResizeColumn(1);
}
}
function deleteTodayColumnForActiveSheet(){
var sheet = SpreadsheetApp.getActiveSheet();
deleteTodayColumn(sheet)
}
function deleteTodayColumnForAllSheets(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for( i=0;i<sheets.length;i++){
var sheet = sheets[i];
deleteTodayColumn(sheet);
}
}
function deleteTodayColumn(sheet){
var values = sheet.getRange('a1').getValues();
var sheetDate = new Date(values[0][0]);
var today = new Date();
var isSameDay = sameDay(today,sheetDate);
if(isSameDay){
sheet.deleteColumn(1);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment