打开时自动更新谷歌幻灯片中的所有链接对象

had*_*i k 5 google-apps-script google-slides

我想自动更新谷歌幻灯片(图表和表格)中的链接对象。我看到了之前问题的答案并组装了以下代码:

function onOpen() {

SlidesApp.getUi() // Or DocumentApp or FormApp.
    .createMenu('Update Charts')
    .addItem("Update now", 'refreshCharts').addToUi();
  refreshCharts();
}

function refreshCharts(){
    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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我点击 时它会更新图表Update Charts> Update now。但它首先不会更新打开幻灯片时的图表。还有另一个问题,它现在只适用于图表,有没有办法在脚本中也包含表格,以便所有图表和表格都可以更新?


更新问题

是否有一种方法可以将按钮直接链接到“工具”>“链接对象”>“更新全部”中的“更新全部”按钮

是否可以在幻灯片上有一个按钮来直接执行此操作?

小智 1

要更新图表,您的refreshCharts()函数应该是onOpen(). 至于表格,似乎没有refresh()与 等效的功能SheetChart。有一个关于此问题的现有功能请求,您可以查看该链接以获取更新。

目前的解决方法是使用工具 -> 链接对象中的链接对象菜单中显示在 UI 中的刷新按钮手动更新它们。您还可以创建一个函数,根据您从中填充表格的工作表,逐个单元格地更新表格。