Есть ли способ вставить сегодняшнюю дату в Google Docs?

75

Я посмотрел под вставкой> ...? но ничего не смог найти.

Это можно сделать с помощью встроенной функции или пользовательского скрипта?

Сэм
источник
11
Я шокирован тем, что в Документах Google эта функция еще отсутствует. Кажется, это одна из самых основных вещей, которые должны быть у современных текстовых процессоров.
LS
Если вам это нужно для распространения, вставьте в ячейку TODAY (). Я знаю вопрос о Google-документах. Но сначала в Google, если Google для электронных таблиц.
Фортран
"= СЕГОДНЯ ()" прекрасно работает
Jackssn
=TODAY()не работает для регистрации, так как она будет обновляться до текущей даты при каждом открытии страницы. В большинстве случаев я хочу записать сегодняшнюю дату, а не обновлять. Если вам нужно вставить текущую дату для файла журнала, то вам нужно что-то еще.
Гефест

Ответы:

66

Можно вставить сегодняшнюю дату через макрос.

Откройте документ Google и в разделе « Инструменты» выберите « Редактор скриптов» . Откроется редактор скриптов 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", "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.');
  }
}

Теперь обновите или снова откройте документ, и появится новый пункт меню: Утилиты . Под этим меню появляется пункт под названием « Дата вставки» . Нажмите, чтобы вставить текущую дату в позиции курсора.

Чтобы изменить формат даты, вам нужно изменить «формат», используемый в скрипте. Формат может содержать следующие символы:yyyy-MM-dd'T'HH:mm:ss'Z'

Чтобы уточнить, этот сценарий просто вставляет сегодняшнюю дату в месте расположения курсора для дня, когда вы запускаете утилиту. Это не совсем то же самое, что и функция = today () в Google Sheets, которая обновляет дату до текущей, когда вы открываете электронную таблицу. Однако этот сценарий избавит вас от необходимости искать дату и вводить ее в тот день, когда вы выполняете сценарий.

Томас Вирсема
источник
1
Теперь это можно найти в меню «Инструменты»> «Редактор сценариев»
Мир
2
По умолчанию это «GMT». Если вы посмотрите на строку, содержащую: Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");можно изменить GMT на выбранный часовой пояс.
Томас Wiersema
1
Я сделал аналогичную функцию для SpreadsheetApp (чтобы вставить дату в активную ячейку). Вы можете найти его здесь: gist.github.com/Eccenux/712ae3d7913e971e46035546b2ccc85b
Nux
1
Теперь ... есть ли способ автоматически заставить скрипт вставляться во все документы, созданные в организации?
Майкл
1
Есть ли способ сделать этот скрипт "глобальным", чтобы скрипт был доступен и доступен для каждого созданного или открываемого мной Документа Google?
Taptronic
1

Если вы хотите использовать стороннюю программу, я использую Dash - http://kapeli.com/dash - с фрагментом даты и времени. Он автоматически заменяет ваш фрагмент (мой «datetime») на текущую дату и время. Это работает во всей системе.

Тире доступно только для OS X и iOS.

Джошуа Дэнс
источник
1
Dash не работает с Google Documents.
Рубен
@ Рубен - я только что проверил. Это прекрасно работает. Вы должны ввести свой ярлык. Например, у меня есть @@ для моей электронной почты. После того, как вы напечатаете, Dash заменяет его вашим текстом.
Джошуа Дэнс
Документы Google не указаны на связанной странице в вашем ответе, с другой стороны, похоже, что Dash доступен только для OS X и iOS. Знаете ли вы, доступно ли это для других ОС?
Рубен
1
@ Rubén - список программных документов API, которые загружаются в Dash. Тире работает везде, где работает ввод текста. И есть аналогичные программы автозаполнения, доступные для других ОС.
Джошуа Дэнс
0

Вот моя модифицированная версия для знакомства с заголовком письма.

Он печатает текущую дату, например «14 августа 2015 года», в часовом поясе «GMT + 2» со шрифтом «Cambria» размером 11.

Смотрите следующее:

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.
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 dMy = Utilities.formatDate(new Date(), "GMT+2", "dd, MMMMM, yyyy"); 
    var element = cursor.insertText(dMy);
    if (element) {
     element.setFontSize(11).setFontFamily('Cambria');                       
    } else {
      DocumentApp.getUi().alert('Cannot insert text at this cursor location.');
    }
  } else {
    DocumentApp.getUi().alert('Cannot find a cursor in the document.');
  }
}
Ворон Венг
источник
0

Забудь макросы. Просто ссылка на ячейку в Google Sheets !

  1. Перейти к Google Sheets .
  2. Создайте новую электронную таблицу Google Sheets и назовите ее примерно так: «Сегодня».
  3. В ячейке этой таблицы введите следующее: = TODAY ()
  4. Выберите эту ячейку вместе с прилегающей ячейкой (что делает ее таблицей, а не просто текстом). Скопируйте выделенные ячейки (используя «Правка» -> «Копировать» или сочетание клавиш).
  5. Откройте Google Doc или Google Slideshow и вставьте таблицу туда, где вы хотите, чтобы отображалась дата текущего дня.

Вуаля!

geekzspot
источник
4
Спасибо @geekzspot - вы упомянули «ячейку», поэтому я предполагаю, что вы говорите о электронной таблице на Google Drive. Знаете ли вы, есть ли способ сделать это в документе Google Drive Word?
Сам
Да, это для электронных таблиц. Я сделал это яснее. Извините, это не работает в документе
geekzspot