繁体   English   中英

我想自动加载Google文档脚本吗?

I'd like to have a Google Docs script automatically load?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个脚本,可以在打开时自动更新google文档标题中的日期。 我不想为每个文档单独安装此脚本。 我可以创建模板,但是每次创建新文档时,都必须转到“新建”>“ Google文档”>“来自模板”,然后选择我的模板。 我只想点击新建> Google文档,然后自动加载此模板。

1 个回复

您可以使用如下对话框:

码:

function onOpen(){
  SpreadsheetApp.getUi().createMenu('My Menu')
  .addItem("Open Templated Google Doc", 'showMyDialog')
  .addToUi()
}

function createTemplatedGoogleDoc(name){
  var doc=DocumentApp.create(name);
  doc.addHeader().appendParagraph(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM dd, yyyy"))
  //doc.getBody().appendParagraph(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM dd, yyyy"));
  //doc.getBody().getChild(0).removeFromParent();
  doc.saveAndClose()
  return doc.getUrl();
}

function showMyDialog(){
  var ui=HtmlService.createHtmlOutputFromFile('docwithdate');
  SpreadsheetApp.getUi().showModelessDialog(ui, 'My Doc with Date');
}

docwithdate.html:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  </head>
  <script>
    function createFile(){
      var name=document.getElementById('filename').value;
      google.script.run
      .withSuccessHandler(function(url){
        var html='<a href="'+ url +'">Go To File</a>';
        $(html).appendTo("body");
      })
      . createTemplatedGoogleDoc(name);
    }
  </script>
  <body>
    <input type="text" id="filename" />
    <input type="button" value="Create File" onClick="createFile()" />
  </body>
</html>

该对话框如下所示:

在此处输入图片说明

输入文件名,然后单击按钮。 该脚本返回到您的新文件的链接。

这也摆脱了对话框:

function onOpen(){
  SpreadsheetApp.getUi().createMenu('My Menu')
  .addItem("Open Templated Google Doc", 'showMyDialog')
  .addToUi()
}

function createTemplatedGoogleDoc(name){
  var doc=DocumentApp.create(name);
  doc.addHeader().appendParagraph(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM dd, yyyy"))
  //doc.getBody().appendParagraph(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM dd, yyyy"));
  //doc.getBody().getChild(0).removeFromParent();
  doc.saveAndClose()
  var rObj={url:doc.getUrl(),filename:doc.getName()}
  return rObj;
}

function showMyDialog(){
  var ui=HtmlService.createHtmlOutputFromFile('docwithdate');
  SpreadsheetApp.getUi().showModelessDialog(ui, 'My Doc with Date');
}

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  </head>
  <script>
    function createFile(){
      var name=document.getElementById('filename').value;
      google.script.run
      .withSuccessHandler(function(rObj){
        var html='<br /><a href="'+ rObj.url +'" onClick="google.script.host.close();">Go To File:' + rObj.filename + '</a>';
        $(html).appendTo("body");
      })
      . createTemplatedGoogleDoc(name);
    }
  </script>
  <body>
    <input type="text" id="filename" />
    <input type="button" value="Create File" onClick="createFile()" />
  </body>
</html>

我可能会使其成为一个webapp,并将其放在书签中以便于访问。 因此,您只需要添加以下内容:

function doGet(){
  return HtmlService.createHtmlOutputFromFile('docwithdate');
}

并部署它。

我假设您可以将模板添加到此简单脚本中。

1 我想根据结果将预加载的图像插入到Google文档中

我是一个生锈的程序员,并且是javascript的新手,尽管我从这些论坛中学到了很多东西(感谢大家分享这么多内容)。 我在Google进行了一项调查,人们对此进行了填写。 这会生成两个特定的分数,第一个是风险分数,第二个是功能分数。 分数的范围从正常到“高风险”。 我有一份生成的 ...

3 Google文档脚本-自动刷新的setValue缺少括号

我只用一个脚本将setValue设置为“”,然后设置Importrange的公式。 基本上,我这样做是为了使数据更新更快,因为我将每5分钟设置一个触发器。 我收到有关缺少括号的错误消息。 我已经读过有关将“ +”插入字符串的信息,但我看不到如何在此表达式中执行。 有人可以帮我吗? ...

4 在Google文档上自动/以编程方式启用Apps脚本插件

我正在疯狂地搜索它,但找不到答案。 想象一下。 我有一个“主”帐户。 使用Docs API,我将向用户授予访问某些文档的权限。 但是我需要在每个文件中启用我的插件。 有权访问文档的用户不在我的组织G Suite或任何其他组织范围内。 他们是Gmail的随机用户。 有什么办法 ...

5 在Google文档应用脚本中自动查找和替换

我正在尝试为Google文档(文档,而不是电子表格)创建一个笔记模板/脚本,以将缩写词自动转换为完整的单词/词组(例如,键入“ mgmt”会自动转换为“管理”)。 我无法弄清楚这种情况是如何实时发生的(与键入后运行脚本相比,这基本上可以更快地找到并替换)。 有小费吗? 还是有可能吗? ...

6 将其他加载项用于Google Apps脚本Google文档

我制作了一个将文档转换为MLA格式(例如Times New Roman,12 pt等)的应用程序,现在我想更进一步,让用户选择所有链接,并且希望它使用EasyBib API来引用它们。 EasyBib制作了一个附加组件,如果您在其中添加链接,它会给出引用,然后单击“将书目添加到文档”,以便按字 ...

7 自动登录Google文档

情况:用户可以通过网站上的外部链接访问其google文档。 现在,他们首先必须登录才能查看其文档。 问题:我希望用户自动登录Google文档 我的用户名和密码存储在dabasase中。 解决此问题的最佳方法是什么? ...

8 需要帮助,可以通过Google脚本在Google文档中自动创建多个段落

我正在尝试创建一个Google文档,该文档具有一个根据Google电子表格中的数据自动生成的段落。 我发现的大多数信息都显示了如何为每组数据创建一个文档或一页,但是我需要生成一个段落并让脚本根据需要创建尽可能多的页面。 这是我的第一个Google脚本(而且我是脚本编写的新手),因此可能存在一 ...

9 在Google脚本中逐行阅读Google文档

是否可以在Google Apps脚本中逐行阅读文档上的文本? 我试图获取段落末尾的“末尾空格”值(该段落的最后一个字符到右边界的距离量)。 如果存在的话,这等效于Google Paragraph Object中的getIndentLastLine()(与getIndentFirstLine( ...

10 使用Google脚本分隔Google文档

我只有一个Google文档,其中包含多个页面。 我想通过应用程序使用的分页符将其分开,并将每个页面保存到单独的文件中。 可能值得注意的是,该文档中也包含图像。 无论如何,我已经看过Google脚本提供了什么,并且似乎没有任何方便的功能来按页面拆分文档。 到目前为止,我有: 因 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM