Google apps script 添加今天';演示幻灯片的日期--已添加,但可以';t更新

Google apps script 添加今天';演示幻灯片的日期--已添加,但可以';t更新,google-apps-script,google-slides,Google Apps Script,Google Slides,在谷歌幻灯片中,我可以使用此脚本将今天的日期添加到我的第一张幻灯片中,但下次运行时,它会添加另一个文本框,其中日期位于另一个日期的顶部,看到两个日期都位于彼此的顶部,会造成混乱。在写入新日期之前,我找不到如何删除该日期,或者如何覆盖该日期 写入日期的代码: function myFunction() { var date = new Date(); var months = ["January", "February", "March", "April", "May", "June",

在谷歌幻灯片中,我可以使用此脚本将今天的日期添加到我的第一张幻灯片中,但下次运行时,它会添加另一个文本框,其中日期位于另一个日期的顶部,看到两个日期都位于彼此的顶部,会造成混乱。在写入新日期之前,我找不到如何删除该日期,或者如何覆盖该日期

写入日期的代码:

function myFunction() {
 var date = new Date();
 var months = ["January", "February", "March", "April", "May", "June", 
 "July", "August", "September", "October", "November", "December"]
 var slide = SlidesApp.getActivePresentation().getSlides()[0];
 var shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 300, 200, 300, 60);
 var textRange = shape.getText();
 textRange.setText(months[date.getMonth()]+' '+date.getDate()+', '+date.getFullYear());
谢谢你,

  • 您希望将包含日期的文本框放在幻灯片的第一页
  • 当文本框存在时,您希望覆盖用于放置日期的文本框
如果我的理解是正确的,那么使用文本框的“标题”如何?请把这看作是几个答案中的一个。修改后的示例脚本如下所示。在此修改中,文本框的标题使用文本框的标识名。此脚本的流程如下所示

  • 从幻灯片的第一页检索所有形状
  • 检索用于按文本框标题放置日期的文本框
  • 如果标题为的文本框存在,则文本框的文本将被文本日期覆盖
  • 如果标题为的文本框不存在,则通过输入日期插入新文本框
  • 修改脚本: 参考资料:

    如果您希望在演示文稿开始时运行脚本,很遗憾,在当前阶段中,这些脚本仍然是“打开”、“安装”和“时间驱动(时钟)”。这样,演示文稿启动时脚本就无法运行。作为一种解决方法,使用“开放”和/或“时间驱动(时钟)”如何?如果这不是你想要的,我很抱歉。我对这一点还不熟悉,也学到了不少。现在我的幻灯片中有一张来自google sheets的图表,使用时间驱动触发器每15分钟更新一次。我在那些触发器中看到我可以在午夜做一个,并打算尝试在我的介绍幻灯片上更新日期。但你是说让它运行我的约会脚本是行不通的吗?那时我就不担心日期了,只是因为我可以在微软的powerpoint和谷歌的工作表上轻松做到这一点而感到沮丧。但是不能让它在幻灯片上工作…关于
    我的幻灯片中有一张来自google sheets的图表,它使用时间驱动触发器每15分钟更新一次。
    ,在运行此触发器时,您也会运行问题中的脚本。如果我的理解是正确的,我认为日期被修改了。如果这不起作用,你能提供详细信息吗?我想正确地理解和确认它。我还没有用触发器尝试过。现在只需点击脚本编辑器上的run按钮。它确实像预期的那样把日期放在了幻灯片上。但当我再次点击run时,它会在旧的文本框的顶部放置另一个带有日期的文本框。但你仍然可以看到下面的旧的,创造了一个混乱的lol。谢谢你的回答。我想我能理解剧本的问题。所以我提出了一个修改后的脚本。你能确认一下吗?如果这不是你想要的结果,我道歉。100%是我想要的。我知道有人会比谷歌更聪明,哈哈,谢谢大家@马克B我很高兴你的问题解决了。也谢谢你。
    function myFunction() {
      var title = "sampleTitle"; // Please set this.
    
      var date = new Date();
      var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
      var slide = SlidesApp.getActivePresentation().getSlides()[0];
      var date = months[date.getMonth()]+' '+date.getDate()+', '+date.getFullYear();
      var shapes = slide.getShapes();
      var s = shapes.filter(function(e) {return e.getTitle() == title});
      if (s.length > 0) {
        s[0].getText().setText(date);
      } else {
        var shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 300, 200, 300, 60).setTitle(title);
        var textRange = shape.getText();
        textRange.setText(date);
      }
    }