Est-il possible d'insérer la date du jour dans un document Google?

75

J'ai regardé sous insert> ...? mais n'a rien pu trouver.

Cela peut-il être effectué via une fonction intégrée ou un script personnalisé?

sam
la source
11
Je suis choqué que Google Documents ne dispose pas déjà de cette fonctionnalité. Cela semble être l’une des choses les plus élémentaires que les traitements de texte modernes devraient avoir.
LS
Si vous en avez besoin pour spreadshetts coller = TODAY () dans la cellule. Je sais question sur google-docs. Mais d'abord dans google si google pour les spreadshets.
Fortran
"= TODAY ()" fonctionne très bien
Jackssn le
=TODAY()ne fonctionne pas pour la journalisation, car il mettra à jour la date actuelle à chaque ouverture de la page. La plupart du temps, je veux enregistrer la date du jour et ne pas mettre à jour. Si vous devez insérer la date du jour pour un fichier journal, vous avez besoin de quelque chose d'autre.
Héphaïstos

Réponses:

66

Il est possible d'insérer la date du jour à travers une macro.

Ouvrez votre document Google et sous Outils, sélectionnez Editeur de script . Cela ouvre l'éditeur de script de Google où il est possible de créer des macros pour Google Documents.

Collez ce script et enregistrez-le en tant que macro de date ou autre chose (également disponible ici ).

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

Maintenant, actualisez ou rouvrez votre document et un nouvel élément de menu apparaît: Utilitaires . Dans ce menu un élément apparaît appelé Insérer la date . Cliquez dessus pour insérer la date du jour à la position de votre curseur.

Pour changer le format de la date, vous devez changer le “format” utilisé dans le script. Le format peut contenir les caractères suivants:yyyy-MM-dd'T'HH:mm:ss'Z'

Pour clarifier, ce script insère simplement la date du jour à l'emplacement du curseur pour le jour où vous exécutez l'utilitaire. Ce n'est pas exactement la même chose que la fonction = today () de Google Sheets, qui met à jour la date à la date du jour lorsque vous ouvrez la feuille de calcul. Cependant, ce script vous évitera d'avoir à chercher la date et à la saisir le jour de son exécution.

Thomas Wiersema
la source
1
Cela se trouve maintenant sous Outils> Editeur de script ...
Mir
2
La valeur par défaut est "GMT". Si vous regardez la ligne contenant: Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");il est possible de changer GMT pour un fuseau horaire de choix.
Thomas Wiersema
1
J'ai créé une fonction similaire pour SpreadsheetApp (pour insérer une date dans une cellule active). Vous pouvez le trouver ici: gist.github.com/Eccenux/712ae3d7913e971e46035546b2ccc85b
Nux
1
Maintenant ... y a-t-il un moyen de forcer automatiquement un script à être inséré dans tous les documents créés dans une organisation?
Michael
1
Existe-t-il un moyen de rendre ce script "global" afin que, pour chaque document Google créé ou ouvert, il soit accessible et accessible?
Taptronic
1

Si vous souhaitez utiliser un programme tiers, j'utilise Dash - http://kapeli.com/dash - avec un extrait de date et heure. Il remplace automatiquement votre extrait de code (le mien est 'datetime') par la date et l'heure actuelles. Cela fonctionne à l'échelle du système.

Dash est uniquement disponible pour OS X et iOS.

Joshua Dance
la source
1
Dash ne semble pas fonctionner avec Google Documents.
Rubén
@ Rubén - Je viens de vérifier. Ça marche très bien. Vous devez taper votre raccourci. Par exemple, j'ai @@ pour mon email. Une fois que vous avez tapé, Dash le remplace par votre texte.
Joshua Dance
Google Documents ne figure pas dans la page liée dans votre réponse. Par contre, Dash semble uniquement disponible pour OS X et iOS. Savez-vous s'il est disponible pour d'autres systèmes d'exploitation?
Rubén
1
@ Rubén - la liste contient les documents de l'API de programmation chargés dans Dash. Dash fonctionne partout où la saisie de texte fonctionne. Et il existe des programmes d'auto-complétion similaires disponibles pour d'autres OS.
Joshua Dance
0

Voici ma version modifiée pour dater une en-tête de lettre.

Il affiche la date du jour comme "14 août 2015" dans le fuseau horaire "GMT + 2" avec la police "Cambria" en taille 11.

Voir ci-dessous:

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
la source
0

Oubliez les macros. Créez un lien vers une cellule dans Google Sheets !

  1. Allez sur Google Sheets .
  2. Créez une nouvelle feuille de calcul Google Sheets et nommez-la sous la forme "Aujourd'hui".
  3. Dans une cellule de cette feuille de calcul, tapez ce qui suit: = TODAY ()
  4. Sélectionnez cette cellule avec une cellule adjacente (ce qui en fait un tableau et pas seulement du texte). Copiez les cellules sélectionnées (en utilisant "Edition" -> "Copier" ou un raccourci clavier).
  5. Ouvrez un document Google ou un diaporama Google et collez le tableau à l'endroit où vous souhaitez afficher la date du jour.

Voila!

geekzspot
la source
4
Merci @geekzspot - vous parlez de "cellule", je présume donc que vous parlez d'un tableur Google Drive. Savez-vous s'il existe un moyen de le faire dans un document Google Drive Word?
Sam
Oui, ceci est pour les feuilles de calcul. Je l'ai précisé. Désolé, cela ne fonctionne pas dans un document
geekzspot