Google apps script 打开时自动更新google幻灯片中的所有链接对象

Google apps script 打开时自动更新google幻灯片中的所有链接对象,google-apps-script,google-slides,Google Apps Script,Google Slides,我想自动更新谷歌幻灯片中的链接对象(图表和表格)。我从下面的代码中看到了答案并汇编了代码: function onOpen() { SlidesApp.getUi() // Or DocumentApp or FormApp. .createMenu('Update Charts') .addItem("Update now", 'refreshCharts').addToUi(); refreshCharts(); } function refreshCharts(){

我想自动更新谷歌幻灯片中的链接对象(图表和表格)。我从下面的代码中看到了答案并汇编了代码:

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();
        }
    }
}
函数onOpen(){ SlidesApp.getUi()//或DocumentApp或FormApp。 .createMenu('更新图表') .addItem(“立即更新”,“刷新图表”).addToUi(); 刷新图表(); } 函数刷新图表(){ var gotsileds=SlidesApp.getActivePresentation().getSlides(); 对于(var i=0;i 当我点击
updatecharts>updatenow
时,它会更新图表。但首先,它不会在打开幻灯片时更新图表。还有一个问题,它现在只适用于图表,有没有办法在脚本中也包含表,这样所有的图表和表都可以更新


问题更新

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


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

要更新图表,您的
刷新图表()
函数应该是
onOpen()
。对于表,似乎没有与
SheetChart
相同的
refresh()
功能。在这个问题上有一个链接,您可以查看该链接以获取更新


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

我在一个包含所有图表的Google电子表格上编写了这样的脚本,并将触发器设置为onChange。因此,每次电子表格更新时,特定数据组上的图表都会自动刷新:

function refreshChartsOnChange(){
    var getSlides = SlidesApp.openById('[ID of the Slide here]').getSlides();

    for (var i = 0; i < getSlides.length; i++) {
        var slide = getSlides[i];
        var sheetCharts = slide.getSheetsCharts();

        for (var j = 0; j < sheetCharts.length; j++) {
            var sheetChart= sheetCharts[j];
            sheetChart.refresh();
        }
    }
}
函数refreshChartsOnChange(){
var getSlides=SlidesApp.openById(“[ID of the Slide here]”)。getSlides();
对于(var i=0;i
Hey@AMolina,你能告诉我你答案第二部分的更多细节吗?我不明白您所说的创建一个函数来逐个单元格更新表单元格的意思。我该如何处理这个问题?@hadik的基本意思是打开电子表格的一个实例,从中获取信息,并使用这些值来更改表中的内容。这是一种令人费解的前进方式,但它会更新表格。嗨@AMolina,你能给我展示一下代码的基本部分吗?比如如何从幻灯片中提取链接表,因为我不知道是否有类似“slide.getSheetsTables();”的内容开始获取链接的电子表格。进一步检查后,我认为按照我建议的方式进行操作太复杂了,我建议您尝试通过“工具”->“链接对象”子菜单手动使用UI进行操作。这很遗憾:(您知道是否有办法直接在菜单栏上添加一个按钮,作为“全部更新”的快捷方式按钮出现在“工具>链接对象”中。