Existe uma maneira de inserir a data de hoje no Google Docs?

75

Eu olhei em inserir> ...? mas não conseguiu encontrar nada.

Isso pode ser feito através de uma função embutida ou de um script personalizado?

sam
fonte
11
Estou chocado que o Google Docs ainda não tenha esse recurso. Parece uma das coisas mais básicas que os processadores de texto modernos devem ter.
LS
Se você precisar dele, espalhe pasta = TODAY () na célula. Eu sei pergunta sobre o google-docs. Mas primeiro no google se o google for spreadshets.
Fortran
"= TODAY ()" funciona muito bem
Jackssn
=TODAY()não funciona para o log, pois será atualizado para a data atual sempre que a página for aberta. Na maioria das vezes, quero gravar a data de hoje e não atualizar. Se você precisar inserir a data de hoje para um arquivo de log, precisará de outra coisa.
Hefesto

Respostas:

66

É possível inserir a data de hoje através de uma macro.

Abra seu documento do Google e, em Ferramentas, selecione Editor de scripts . Isso abre o editor de scripts do Google, onde é possível criar macros para o Google Documents.

Cole esse script e salve-o como Macro de Data ou algo assim: (também disponível aqui )

/**
 * 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.');
  }
}

Agora atualize ou reabra o documento e um novo item de menu é exibido: Utilitários . Sob esse menu, um item aparece chamado Inserir Data . Clique para inserir a data de hoje na posição do cursor.

Para alterar o formato da data, você precisa alterar o "formato" usado no script. O formato pode conter os seguintes caracteres:yyyy-MM-dd'T'HH:mm:ss'Z'

Para esclarecer, esse script apenas insere a data de hoje no local do cursor do dia em que você executa o utilitário. Isso não é exatamente o mesmo que a função = today () no Planilhas Google, que atualiza a data para a data atual sempre que você abre a planilha. No entanto, esse script poupará o trabalho de procurar a data e digitar no dia em que você executar o script.

Thomas Wiersema
fonte
1
Isto agora é encontrado em Ferramentas> Editor de scripts ...
Mir
2
O padrão é "GMT". Se você olhar para a linha que contém: Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");é possível alterar o GMT para um fuso horário de sua escolha.
Thomas Wiersema 23/03
1
Eu criei uma função semelhante para SpreadsheetApp (para inserir a data na célula ativa). Você pode encontrá-lo aqui: gist.github.com/Eccenux/712ae3d7913e971e46035546b2ccc85b
Nux
1
Agora .. existe alguma maneira de forçar automaticamente a inserção de um script em todos os documentos criados em uma organização?
Michael
1
Existe alguma maneira de tornar esse script "global" para que, para todo Google Doc que eu crie ou abra, o script esteja lá e acessível?
Taptronic
1

Se você estiver disposto a usar um programa de terceiros, eu uso o Dash - http://kapeli.com/dash - com um snippet de data e hora. Ele substitui automaticamente seu snippet (o meu é 'datetime') pela data e hora atuais. Isso funciona em todo o sistema.

O Dash está disponível apenas para OS X e iOS.

Joshua Dance
fonte
1
O Dash não parece funcionar com o Google Documents.
Rubén
@ Rubén - Acabei de verificar. Isso funciona muito bem. Você precisa digitar seu atalho. Por exemplo, tenho @@ no meu email. Depois de digitar, o Dash o substitui pelo seu texto.
Joshua Dança
O Google Documents não está listado na página vinculada da sua resposta, por outro lado, parece que o Dash está disponível apenas para OS X e iOS. Você sabe se está disponível para outro sistema operacional?
Rubén
1
@ Rubén - a lista são os documentos da API de programação que são carregados no Dash. O Dash funciona em qualquer lugar da entrada de texto. E existem programas automáticos completos semelhantes disponíveis para outros sistemas operacionais.
Joshua Dance
0

Aqui está a minha versão modificada para namorar um cabeçalho de carta.

Ele imprime a data atual como '14 de agosto de 2015' no fuso horário "GMT + 2" com a fonte 'Cambria' no tamanho 11.

Veja o seguinte:

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.');
  }
}
Raven Weng
fonte
0

Esqueça as macros. Basta vincular a uma célula no Planilhas Google !

  1. Acesse o Planilhas Google .
  2. Crie uma nova planilha do Planilhas Google e chame-a de algo como "Hoje".
  3. Em uma célula nessa planilha, digite o seguinte: = HOJE ()
  4. Selecione essa célula junto com uma célula adjacente (o que a torna uma tabela e não apenas texto). Copie as células selecionadas (usando "Editar" -> "Copiar" ou um atalho de teclado).
  5. Abra um Google Doc ou uma apresentação de slides do Google e cole a tabela onde quiser que a data do dia atual apareça.

Voila!

geekzspot
fonte
4
Obrigado @geekzspot - você menciona 'célula', então presumo que você esteja falando sobre uma planilha do Google Drive. Você sabe se existe uma maneira de fazer isso em um documento do Google Drive?
sam
Sim, isso é para planilhas. Eu deixei isso mais claro. Desculpe, isso não funciona em um documento
geekzspot