我有一个电子表格,可以跟踪一系列文档。在电子表格内部,我有一个按钮,按下该按钮后,从我的驱动器中找到一个特定的模板文件并复制它。该脚本如下所示:
function myFunction() {
var file = DriveApp.getFileById("<template doc id goes here>");
var folder = DriveApp.getFolderById("<folder where new file will go>");
var newfile = "<newly created file name goes here>";
file.makeCopy(newfile, folder);
}
有没有办法可以在创建新标签后强制新创建的文档打开?这样一旦创建了新文档,我就不需要导航回文件夹并手动打开进行编辑。
答案 0 :(得分:0)
如果您使用HTML服务作为原始按钮,则只需添加window.open
功能。
<script>
function openTheUrl() {
window.open("http://www.stackoverflow.com");
};
</script>
可以使用文件类的getUrl()
方法返回新文档的URL:
Google Documentation - getUrl()
此过程有多个步骤。
gs
调用应用脚本google.script.run
功能HTML脚本标记,用于调用应用脚本代码,并定义成功函数:
<script>
window.callServerCode = function() {
google.script.run
.withSuccessHandler(openTheUrl)
.myFunction();
}
function openTheUrl(argNewUrl) {
Logger.log('argNewUrl: ' + argNewUrl);
window.open(argNewUrl);
};
</script>
Apps Script代码需要返回一个值:
function myFunction() {
var file = DriveApp.getFileById("<template doc id goes here>");
var folder = DriveApp.getFolderById("<folder where new file will go>");
var newfile = "<newly created file name goes here>";
var newFile = file.makeCopy(newfile, folder);
var newDocURL = newFile.getUrl();
return newDocURL;
}
google.script.run
withSuccessHandler函数自动接收返回值。
答案 1 :(得分:0)
正如本问题How to open a URL link from JavaScript inside a Google Apps Script HTML Google Site Gadget所述,调用window.open因为caja清理而无法工作。
但是您可以将网址添加到cel,或在HTML中创建链接。用户必须单击它才能打开可能不是您想要的解决方案的新工作表,但这样可以节省查看该新文件的驱动器的时间。