Google apps script 在google文档中插入日期时间

Google apps script 在google文档中插入日期时间,google-apps-script,timestamp,google-docs,Google Apps Script,Timestamp,Google Docs,我想在Google文档中插入一个时间戳(日期和/或时间)。支持文档()说应该有一个键盘快捷键,但它在我的环境(Win7+IE9)中不起作用 有人能为我提供一个谷歌应用程序脚本来实现这一点吗?对于文档来说,你可能运气不好,看起来是这样,而且缺乏对文档内部脚本的支持(电子表格将是另一回事)。不过,既然你在Windows上,你可以利用它,虽然太长,但显示了分配全局热键组合以在任意位置插入当前日期。这样,在使用Windows系统时,您就可以将日期/时间插入任意位置。(您可以自定义它,使其仅在某些应用程序

我想在Google文档中插入一个时间戳(日期和/或时间)。支持文档()说应该有一个键盘快捷键,但它在我的环境(Win7+IE9)中不起作用


有人能为我提供一个谷歌应用程序脚本来实现这一点吗?

对于文档来说,你可能运气不好,看起来是这样,而且缺乏对文档内部脚本的支持(电子表格将是另一回事)。不过,既然你在Windows上,你可以利用它,虽然太长,但显示了分配全局热键组合以在任意位置插入当前日期。这样,在使用Windows系统时,您就可以将日期/时间插入任意位置。(您可以自定义它,使其仅在某些应用程序(如IE)中处于活动状态,如果您想使用它变得古怪)

尝试以下方法:

函数insertTimestamp(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var cell=ss.getActiveCell();
cell.setValue(新日期());
//将单元格格式设置为月/日/年。
//如果您也希望插入时间,请删除
cell.setNumberFormat(“MM/dd/yyyy”)
}

这适用于电子表格,但不确定您是否正在寻找其他文档。

今天在谷歌文档中创建电子表格。将日期放在B1中作为今天()使用函数文本(B1,“dddd,mmmm d,yyyy”)将其格式化为C1 然后使用以下脚本(您需要今天电子表格的url

函数myFunction(){
var doc=DocumentApp.getActiveDocument();
var body1=doc.getBody();
var style1={};
style1[DocumentApp.Attribute.BOLD]=true;
var text1=doc.editAsText();
正文1.附录水平规则();
var wb=SpreadsheetApp.openByUrl(“电子表格url”);
var ss=wb.getSheetByName('Today');
var r=ss.getRange('C1');
var date1=r.getValues();
var par1=body1.附录段落(日期1[0]);
par1.setAttributes(style1);
}
这很有效

在Google文档中:工具->打开脚本编辑器并保存此脚本

函数onOpen(){ var ui=DocumentApp.getUi(); //或FormApp或电子表格应用程序。 ui.createMenu(“自定义菜单”) .addItem('插入日期','插入日期') .addToUi(); } 函数insertDate(){ var cursor=DocumentApp.getActiveDocument().getCursor(); 如果(光标){ //尝试在光标位置插入文本。如果插入返回null, //然后光标的包含元素不允许插入文本。 var d=新日期(); var dd=d.getDate(); dd=焊盘(dd,2) var mm=d.getMonth()+1;//月份以零为基础 毫米=衬垫(毫米,2) 变量yyyy=d.getFullYear(); 变量日期=dd+“-”+mm+“-”+yyyy; var元素=cursor.insertText(日期); if(元素){ 元素。setBold(true); }否则{ DocumentApp.getUi().alert('无法在此光标位置插入文本'); } }否则{ DocumentApp.getUi().alert('在文档中找不到光标'); } } 功能板(str,最大值){ str=str.toString(); 返回str.length 重新加载文档,接受权限。

这里是一个编辑版本(已经提供的版本),它打印出包括时间在内的日期戳

以下是一个输出示例:美国东部时间2014年3月26日凌晨2:43:21

函数onOpen(){ var ui=DocumentApp.getUi(); //或FormApp或电子表格应用程序。 ui.createMenu('插入日期') .addItem('插入日期','插入日期') .addToUi(); } 函数insertTime(){ var d=新日期(); var timeStamp=d.getTime();//自1970年1月1日以来的毫秒数 //或: var currentTime=d.toLocaleTimeString();/“12:35 PM”,例如 } 函数insertDate(){ var cursor=DocumentApp.getActiveDocument().getCursor(); 如果(光标){ //尝试在光标位置插入文本。如果插入返回null, //然后光标的包含元素不允许插入文本。 var d=新日期(); var dd=d.getDate(); dd=焊盘(dd,2) var mm=d.getMonth()+1;//月份以零为基础 毫米=衬垫(毫米,2) 变量yyyy=d.getFullYear(); var timeStamp=d.getTime();//自1970年1月1日以来的毫秒数 var currentTime=d.toLocaleTimeString();/“12:35 PM”,例如 变量日期=当前时间+“”+dd+“-”+mm+“-”+yyyy; var元素=cursor.insertText(日期); if(元素){ 元素。setBold(true); }否则{ DocumentApp.getUi().alert('无法在此光标位置插入文本'); } }否则{ DocumentApp.getUi().alert('在文档中找不到光标'); } } 功能板(str,最大值){ str=str.toString(); 返回str.length因为额外的按键用于从菜单中插入日期,所以我的解决方案是一个批处理文件sts.cmd,它在调用时将日期时间存储在剪贴板中,使Windows+R、sts、Ctrl+V可以轻松获取和粘贴。如果您要添加额外的按键以将日期粘贴到文档中,那么您也可以将其粘贴进去。 代码是

@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

这对我来说很有用,直到GDocs提供了一个可嵌入的功能,每次打开文档时都会将显示日期更新为当前日期。

在MacOS上,我使用Automator

我创建了一个与Chrome配合使用的服务,不接受任何输入,运行shell脚本并将输出发送到剪贴板。shell脚本非常基本:

DateTime=`date "+%Y-%m-%d %H:%M"`
echo $DateTime
我本可以不使用中间变量,只运行date命令,但我有一个想法,可能需要进行额外的处理和格式化。请注意,如果要在日期字符串的格式化中包含空格,格式化参数必须在引号中。屏幕截图使用了下划线

保存脚本后,我进入系统设置>键盘>快捷键,在文本部分找到脚本DateTime2CB.workflow,并给它一个热键