【问题标题】:Using Google appscript to refresh tables pasted in from Google sheets into Google slides使用 Google 应用程序脚本刷新从 Google 表格粘贴到 Google 幻灯片中的表格
【发布时间】:2018-02-07 14:07:39
【问题描述】:

这里的这个问题作为updating Google Sheets charts linked to Google slides 的简洁解决方案。

function onOpen() {
  var ui = SlidesApp.getUi();
  ui.createMenu('Custom Menu')
  .addItem('Batch Update Charts', 'batchUpdate')
  .addToUi();
}

function batchUpdate(){

  var gotSlides = SlidesApp.getActivePresentation().getSlides();

  for (var i = 0; i < gotSlides.length; i++) {
    var slide = gotSlides[i];
    var sheetsCharts = slide.getSheetsCharts();
    for (var k = 0; k < sheetsCharts.length; k++) {
      var shChart = sheetsCharts[k];
      shChart.refresh();
    }
  }
}

我希望做同样的事情,但将表格从 Google 表格粘贴到 Google 幻灯片中。我看不出这在AppScript API for Google Slides 中会是什么样子。有人能指出前进的方向吗?

【问题讨论】:

  • 没有这样做,我为表实体寻找了一个类似的 .refresh() ,但我也找不到。如果确实没有,那么我个人会尝试使用谷歌应用程序脚本从电子表格中获取值(),然后通过脚本使用幻灯片 API,即developers.google.com/apps-script/advanced/slides,编写一个脚本来循环遍历幻灯片上的表格并插入每个单元格所需的 ss 值。如果没有“陷阱”,不容易但也不难。 YMMV。
  • 感谢@DavidTew 的建议 - 我之前没有使用过带幻灯片的 appscript(我习惯于将它与工作表一起使用)我会试一试的。
  • 这里有类似的问题:stackoverflow.com/questions/45280944/… - 有一个功能请求 issuetracker.google.com/issues/64027131,目前状态为“已分配”,所以有希望...
  • 嘿,我认识那个代码 :) 有人在 OP 的链接帖子中评论了我的脚本,那个人问是否可以类似地更新幻灯片中的嵌入表格。我做了一个快速的 GSearch 并找到了这个!看起来我们在 20 个月后仍处于“分配”状态。

标签: google-apps-script google-sheets google-slides-api google-slides


【解决方案1】:

最新更新:幻灯片的工具下拉菜单中现在有一个选项可以查看所有链接对象;出现的菜单底部有“全部更新”选项。

【讨论】:

    【解决方案2】:

    我在 Leo 于 2018 年 10 月 30 日作为对 OP 的评论提供的 issuetracker 链接中找到了此解决方法:

    “如果有人正在阅读这篇文章并想要该功能,一种解决方案是 在您的工作表中创建一个“表格图表”,从您现有的表格(即 您试图链接/更新)。它不允许您复制和 从表格粘贴到幻灯片,但如果您转到插入,则在幻灯片中 - > 图表 -> 从电子表格中,然后选择您的工作表和图表(表格)。 然后,您可以使用应用程序脚本自动更新它,因为您可以 用图表。”

    来自 ad...@lovecrafts.c​​om

    【讨论】:

      【解决方案3】:

      正如所指出的,使用 Google App Script 是不可能的,但我发现了一种使用 Python 和 Selenium 的解决方法,可以使用 Google Colab 在线运行。

      Is is possible to use Selenium to click on a button in a Google Slides Presentation?

      【讨论】:

        【解决方案4】:

        首先你可以使用类似的变量

        var sheetsTables = slide.getTables() 
        

        然后使用for() 循环更新每张幻灯片中的每个表格。但是,我不知道您可以使用哪种方法。如果你知道一个,请分享。

        【讨论】:

          猜你喜欢
          • 2018-12-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-23
          相关资源
          最近更新 更多