Created
December 29, 2019 23:44
-
-
Save dbieber/42153e6a27382ba6193f108c13b84cf9 to your computer and use it in GitHub Desktop.
Code used for archiving past events in the daily activity log spreadsheet.
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(); | |
ui.createMenu('Activity Log') | |
.addItem('Archive Past Events', 'archivePastEvents') | |
.addToUi(); | |
} | |
function archivePastEvents() { | |
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); | |
var sheet = spreadsheet.getSheetByName("Activities"); | |
var archiveSheet = spreadsheet.getSheetByName("Archive"); | |
var numColumns = sheet.getLastColumn(); | |
var firstRow = 2; | |
var range = sheet.getRange(firstRow, 1, /*numRows=*/sheet.getLastRow(), /*numColumns=*/numColumns); | |
var values = range.getValues(); | |
var columns = SpreadsheetDB.getColumnNames(sheet); | |
var indexes = SpreadsheetDB.getColumnIndexes(columns); | |
var now = moment(); | |
for (var i = values.length - 1; i >= 0; i--) { | |
var row = values[i]; | |
if (now.isAfter(dateAsMoment(row[indexes["Date"]]), 'day')) { | |
// Event is in the past. | |
archiveSheet.insertRowBefore(2); | |
var newRowRange = archiveSheet.getRange(2, 1, /*numRows=*/1, /*numColumns=*/numColumns); | |
sheet.getRange(i + firstRow, 1, /*numRows=*/1, /*numColumns=*/numColumns).copyTo(newRowRange); | |
sheet.deleteRow(i + firstRow); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment