webentwicklung-frage-antwort-db.com.de

Datumszeit in Google-Dokument einfügen

Ich möchte einen Zeitstempel (Datum und/oder Uhrzeit) in Google Documents einfügen. Die Supportdokumentation () besagt, dass es eine Tastenkombination geben sollte, die jedoch in meiner Umgebung (Win7 + IE9) nicht funktioniert.

Kann mir jemand ein Google Apps-Skript zur Verfügung stellen, um dies zu erreichen?

32
rbregt

Das funktioniert gut

In Google Text & Tabellen: Extras -> Skript-Editor öffnen und dieses Skript speichern 

function onOpen() {
  var ui = DocumentApp.getUi();
  // Or FormApp or SpreadsheetApp.
  ui.createMenu('Custom Menu')
      .addItem('Insert Date', 'insertDate')
      .addToUi();

}

function insertDate() {
  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 d = new Date();
      var dd = d.getDate();
      dd = pad(dd, 2)
      var mm = d.getMonth() + 1; //Months are zero based
      mm = pad(mm, 2)
      var yyyy = d.getFullYear();
      var date = dd + "-" + mm + "-" + yyyy;
      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 pad (str, max) {
  str = str.toString();
  return str.length < max ? pad("0" + str, max) : str;
}

Laden Sie das Dokument erneut, akzeptieren Sie die Berechtigungen.

39
Ryan Heitner

Ich bin nicht sicher, ob ein Add-On unter die Kategorie Google Apps Script fällt, nach der Sie gefragt haben. In Fehler Text Factory können Sie einen Zeitstempel einfügen.

Screenshot

9
orschiro

Hier ist eine bearbeitete Version (der bereits bereitgestellten), die einen Datumsstempel einschließlich der Uhrzeit ausgibt.

Hier ist ein Beispiel für die Ausgabe: 2:43:21 AM EST 26-03-2014

function onOpen() {
  var ui = DocumentApp.getUi();
  // Or FormApp or SpreadsheetApp.
  ui.createMenu('Insert Date')
      .addItem('Insert Date', 'insertDate')
      .addToUi();

}

function insertTime() {
  var d = new Date();
  var timeStamp = d.getTime();  // Number of ms since Jan 1, 1970

  // OR:

  var currentTime = d.toLocaleTimeString(); // "12:35 PM", for instance
}

function insertDate() {
  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 d = new Date();
      var dd = d.getDate();
      dd = pad(dd, 2)
      var mm = d.getMonth() + 1; //Months are zero based
      mm = pad(mm, 2)
      var yyyy = d.getFullYear();
      var timeStamp = d.getTime();  // Number of ms since Jan 1, 1970
      var currentTime = d.toLocaleTimeString(); // "12:35 PM", for instance
      var date = currentTime + " " + dd + "-" + mm + "-" + yyyy;
      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 pad (str, max) {
  str = str.toString();
  return str.length < max ? pad("0" + str, max) : str;
}
5
troy

Da zum Einfügen des Datums aus dem Menü zusätzliche Tastenkombinationen verwendet werden, ist meine Lösung eine Batchdatei, sts.cmd, die beim Aufrufen das Datum und die Uhrzeit in der Zwischenablage speichert. Dadurch wird ein einfaches Windows + R, Strg + V zum Abrufen und Einfügen. Wenn Sie zusätzliche Tastenanschläge hinzufügen, um das Datum trotzdem in das Dokument zu übernehmen, können Sie es auch einfach in ..__ einfügen. Der Code lautet

@ECHO OFF
for /f "tokens=1-12 delims=/:. " %%d in ("%time%") do SET MYTIME= %%d:%%e:%%f
for /f "tokens=1-12 delims=/:. " %%d in ("%date%") do SET MYDATE= %%g-%%e-%%f
SET MYTS=%MYDATE%%MYTIME%
ECHO | SET /p dummyname=%MYTS%|clip

Dies funktioniert für mich so lange, bis GDocs mit einer einbettbaren Funktion aufwartet, die das Anzeigedatum bei jedem Öffnen des Dokuments auf das aktuelle Datum aktualisiert.

3
jwf3148

Für Docs haben Sie wahrscheinlich kein Glück, da es keinen Hotkey dafür gibt , und die Unterstützung für das Scripting von Docs fehlt (Spreadsheets wäre eine andere Geschichte). Da Sie Windows verwenden, können Sie jedoch autohotkey verwenden. Dieses Video zeigt, obwohl es viel zu lang ist, die Zuweisung einer globalen Tastenkombination, um das aktuelle Datum an einer beliebigen Stelle einzufügen. Damit können Sie das Datum und die Uhrzeit an einem beliebigen Ort eingeben, während Sie Ihr Windows-System verwenden. (Sie können es so anpassen, dass es nur in bestimmten Anwendungen aktiv ist, z. B. im IE, wenn Sie damit etwas verrückt machen möchten.)

3
Brian Henry

Unter MacOS habe ich Automator verwendet. 

Ich habe einen Dienst erstellt, der mit Chrome funktioniert, keine Eingaben entgegennimmt, ein Shell-Skript ausführt und die Ausgabe an die Zwischenablage sendet. Das Shell-Skript ist sehr einfach:

DateTime=`date "+%Y-%m-%d %H:%M"`
echo $DateTime

Ich hätte auf die Zwischenvariable verzichten und einfach den Date-Befehl ausführen können, aber ich hatte die Idee, dass ich zusätzliche Verarbeitung und Formatierung machen möchte. Beachten Sie, dass das Formatierungsargument in Anführungszeichen stehen muss, wenn Sie Leerzeichen in die Formatierung der Datumszeichenfolge aufnehmen möchten. Der Screenshot verwendet stattdessen eine Unterleiste.

 enter image description here Nach dem Speichern des Skripts ging ich zu Systemeinstellungen> Tastatur> Tastenkombinationen. Ich fand mein Skript DateTime2CB.workflow im Textbereich und gab ihm einen Hotkey. Es gibt keine einfache Möglichkeit herauszufinden, welche Tastenkombinationen verwendet werden.

Ich hätte es für jede App machen können (und wenn ich versuche, andere Apps zu verwenden, mache ich das vielleicht immer noch), aber im Moment ist es nur Chrome. Ich hätte auch das Shell-Skript die Ausgabe des Datums an die Zwischenablage weiterleiten lassen können. Ich habe beide Methoden getestet und sie funktionieren.

Ich habe dasselbe Skript einem anderen Mac hinzugefügt, und es wurde so eingerichtet, dass die Automator-Datei (name .workflow) in iCloud gespeichert wird. In diesem Zusammenhang wurde es nicht in den Tastatureinstellungen aufgeführt. Um dies zu beheben, musste ich die gespeicherte iCloud-Datei in Automator mit Öffnen> Zuletzt öffnen. Es wurde gefragt, ob ich die Datei in Services installieren möchte. Eine Ja-Antwort zu diesem Zeitpunkt hat sie auf meinem lokalen System gespeichert. Ich konnte sie unter Einstellungen> Tastatur> Shorcuts> Dienste finden.

Ich hoffe, das hilft anderen Mac-Benutzern.

August

2
August Mohr

Wenn Sie automatisch aktuelles Datum nach geöffnetem Dokument erhalten möchten, können Sie dieses Skript hinzufügen:

In Google Docs: Extras -> Skript-Editor öffnen und speichern Sie dieses Skript:

/** 
 *  After open document actualize part with text "Generated" to "Generated [actual date]".
 */

function onOpen() {  
  var body = DocumentApp.getActiveDocument().getBody();
  var date = Utilities.formatDate(new Date(), "GMT", "dd.MM.yyyy");
  // Clear the text surrounding "Apps Script", with or without text.
  body.replaceText("^Generated.*$", "Generated " + date);    
}

Im Dokumentkörper muss der Text "Generiert" enthalten sein.

1
user2332754