Created
July 16, 2018 15:04
-
-
Save kibotu/36374763a9884ec3ba29622a74249147 to your computer and use it in GitHub Desktop.
Google Document Script for insert at cursor: current date and last updated date
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
/* opened. Use it to add custom menus to Google Docs that allow the user to run | |
* custom scripts. For more information, please consult the following two | |
* resources. | |
* | |
* Extending Google Docs developer guide: | |
* https://developers.google.com/apps-script/guides/docs | |
* | |
* Document service reference documentation: | |
* https://developers.google.com/apps-script/reference/document/ | |
*/ | |
function onOpen() { | |
// Add a menu with some items, some separators, and a sub-menu. | |
DocumentApp.getUi().createMenu('Utilities') | |
.addItem('Insert Current Date', 'insertCurrentDate') | |
.addItem('Insert Last Updated Date', 'insertLastUpdatedDate') | |
.addToUi(); | |
} | |
/** | |
* Inserts the date at the current cursor location in boldface. | |
*/ | |
function insertCurrentDate() { | |
var cursor = DocumentApp.getActiveDocument().getCursor(); | |
if (cursor) { | |
// Attempt to insert text at the cursor position. If insertion returns null, | |
// then the cursor's containing element doesn't allow text insertions. | |
var date = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd"); // "yyyy-MM-dd'T'HH:mm:ss'Z'" | |
var element = cursor.insertText(date); | |
if (element) { | |
element.setBold(true); | |
} else { | |
DocumentApp.getUi().alert('Cannot insert text at this cursor location.'); | |
} | |
} else { | |
DocumentApp.getUi().alert('Cannot find a cursor in the document.'); | |
} | |
} | |
function insertLastUpdatedDate() { | |
var id = DocumentApp.getActiveDocument().getId(); | |
var lastUpdated = DriveApp.getFileById(id).getLastUpdated(); | |
var date = Utilities.formatDate(lastUpdated, "GMT", "yyyy-MM-dd"); // "yyyy-MM-dd'T'HH:mm:ss'Z'" | |
var cursor = DocumentApp.getActiveDocument().getCursor(); | |
if (cursor) { | |
var element = cursor.insertText(date); | |
if (element) { | |
element.setBold(true); | |
} else { | |
DocumentApp.getUi().alert('Cannot insert text at this cursor location.'); | |
} | |
} else { | |
DocumentApp.getUi().alert('Cannot find a cursor in the document.'); | |
} | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for sharing! 🎉
For some reason, the
onEdit(e)
doesn't work for Google Docs (and according to the documentation it only gets triggered when a Spreadsheet cell changes, so, no support for Google Docs, yet!), I wanted to run a replace-placeholder-with-content logic on edit, and adding a menu to manually do that was a good plan B. Thanks again. 😁