Je souhaite insérer un horodatage (date et/ou heure) dans Google Documents. La documentation de support () indique qu'il doit exister un raccourci clavier, mais cela ne fonctionne pas dans mon environnement (Win7 + IE9).
Quelqu'un peut-il me fournir un script Google Apps pour y parvenir?
Ça marche bien
Dans Google Documents: Outils -> Ouvrez l'éditeur de script et enregistrez ce script.
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;
}
Rechargez le document, acceptez les autorisations.
Je ne sais pas si un module complémentaire tombe dans la catégorie Script Google Apps que vous demandiez, bug Text Factory fournit la fonctionnalité permettant d'insérer un horodatage.
Voici une version éditée (de celle déjà fournie) qui imprime un horodatage incluant l'heure.
Voici un exemple de sortie: 02h43: 21h HNE, 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;
}
Etant donné que des touches supplémentaires sont utilisées pour insérer la date à partir du menu, ma solution est un fichier de traitement par lots, sts.cmd, qui stocke la date et l'heure dans le presse-papiers lors de l'appel, permettant ainsi une lecture facile de Windows + R Ctrl + V pour obtenir et coller. Si vous ajoutez des frappes supplémentaires pour obtenir la date dans le document, vous pouvez tout aussi bien le coller dans . Le code est
@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
Cela fonctionne pour moi jusqu'à ce que GDocs propose une fonction intégrable qui mettra à jour la date d'affichage à la date du jour à chaque ouverture du document.
Pour Docs, vous n'avez probablement pas de chance, car il semble y avoir aucun raccourci clavier pour cela , et le support pour la création de scripts à partir de Docs fait défaut (les feuilles de calcul seraient une autre histoire). Puisque vous êtes sur Windows, vous pouvez vous prévaloir de autohotkey , cependant. Cette vidéo , bien que beaucoup trop longue, montre l’assignation d’un raccourci clavier global pour insérer la date du jour n’importe où. Avec cela, vous pouvez insérer votre date/heure où vous voulez en utilisant votre système Windows. (Vous pouvez le personnaliser pour qu'il ne soit actif que dans certaines applications, telles que IE, si vous voulez vous en sortir complètement.)
Sur MacOS, j'ai utilisé Automator.
J'ai créé un service qui fonctionne avec Chrome, ne prend aucune entrée, exécute un script Shell et envoie la sortie au presse-papiers. Le script shell est très basique:
DateTime=`date "+%Y-%m-%d %H:%M"`
echo $DateTime
J'aurais pu me passer de la variable intermédiaire et exécuter simplement la commande de date, mais je pensais pouvoir effectuer un traitement et un formatage supplémentaires. Notez que si vous souhaitez inclure des espaces dans votre mise en forme de la chaîne de date, l'argument de mise en forme doit être entre guillemets. La capture d'écran utilise une barre de soulignement.
Une fois le script enregistré, je suis allé dans Paramètres système> Clavier> Raccourcis, j'ai trouvé mon script DateTime2CB.workflow dans la section Texte et lui ai donné un raccourci clavier. Il n'y a pas de moyen facile de savoir quels raccourcis clavier sont utilisés.
J'aurais pu le faire pour n'importe quelle application (et si je me trouvais à essayer d'utiliser d'autres applications, je pourrais le faire), mais pour l'instant, il ne s'agit que de Chrome. J'aurais aussi pu avoir le script Shell diriger la sortie de la date vers le presse-papier, pbcopy sur Mac, comme ci-dessus (en utilisant "clip"). J'ai testé les deux méthodes et elles fonctionnent.
J'ai ajouté le même script à un autre Mac et il a été configuré pour exiger que le fichier Automator (name .workflow) soit enregistré dans iCloud. dans ce contexte, il n'était pas répertorié dans les paramètres du clavier. Pour résoudre ce problème, je devais rouvrir le fichier iCloud enregistré dans Automator en utilisant Ouvrir> Récent. Il m'a demandé si je voulais installer le fichier dans les services. Une réponse affirmative à ce stade l'a sauvegardé sur mon système local et je pouvais le trouver sous Paramètres> Clavier> Raccourcis> Services.
J'espère que cela aide les autres utilisateurs de Mac.
Août
Si vous voulez obtenir automatiquement la date actuelle après le document ouvert , vous pouvez ajouter ce script:
Dans Google Documents: Outils -> Ouvrir l'éditeur de script et enregistrez ce script:
/**
* 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);
}
Dans le corps du document, vous devez avoir le texte "Généré".