web-dev-qa-db-ja.com

Googleドキュメントで現在の日付をドキュメントフッターに自動的に追加するにはどうすればよいですか?

Googleドキュメントで現在の日付をドキュメントフッターに自動的に追加したい。

私が見つけたのはこのスクリプトだけでした:

/**
 * The onOpen function runs automatically when the Google Docs document is
 * 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 Date', 'insertAtCursor')
      .addToUi();
}

/**
 * Inserts the date at the current cursor location in boldface.
 */
function insertAtCursor() {
  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", "'Atualizado em: 'dd-MM-yyyy' 'HH:mm:ss"); // "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.');
  }
}

しかし、私はそれが作成するメニューのボタンを押さなければならず、日付はカーソル位置に追加されます。

私が欲しいのは、ドキュメントを開くたびにフッターに追加することです。

6

Googleに日付追加機能がないことに本当に驚きました。これは動作します。編集のためにドキュメントを開くたびに、フッターがクリアされ、現在の日付が追加されることに注意してください。単純なトリガーで実行する必要がありますが、最初にスクリプトインターフェイスから実行してアクセス許可を付与する必要があります。

function onOpen() {
  var doc = DocumentApp.getActiveDocument();
  var footer = doc.getFooter();  //gets the footer
  footer.clear();  //clears all data in footer

  //Get date
  var date = new Date();
  var month = date.getMonth()+1;
  var day = date.getDate();
  var year = date.getFullYear();
  var hour = date.getHours()+1;
  var minute = date.getMinutes()+1;

  footer.appendParagraph(month+'/'+day+'/'+year);  //adds date to footer
 }
4
Hink