Created
July 28, 2018 08:26
-
-
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
This file contains hidden or 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
| 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