【问题标题】:How paste google sheets cells one by one into google slide如何将谷歌表格单元格一一粘贴到谷歌幻灯片中
【发布时间】:2018-12-27 15:18:34
【问题描述】:

我想将一张谷歌表格中不同列的单元格内容逐行放入一张谷歌幻灯片中。

我找到了this video from google developpers,但他们使用 api 来更新幻灯片,我不需要。在stackoverflow 中closest question is here,其中将工作表的范围复制到幻灯片中。

例如这张表

A 列______________B 列_________C 列
保罗______________贝克________纽约
杰里______________史密斯____________芝加哥
蒂姆_______________约翰逊______________洛杉矶

在幻灯片中有例如 {{column A}} 和 {{column C}} 的占位符(我不需要 B)每个占位符,例如 5x。现在脚本应该将 A 列和 C 列的值逐行填充到幻灯片中,直到工作表的最后一行,并将剩余的占位符留空。

【问题讨论】:

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


    【解决方案1】:

    假设您有一个包含第一张空白幻灯片(没有表格)的演示文稿。从空白开始很有用,因为我们不必记住确切的数据行数。然后我们应该创建一个包含两列的新表,并用导入的电子表格数据填充它。

    我们可以通过电子表格和幻灯片容器中的 Google 脚本来完成。我选择了具有已知电子表格 ID 的幻灯片容器:

    function addTable() {
      var ssId = '-- spreadsheet ID here --';
      var values = SpreadsheetApp.openById(ssId).getSheetByName('Test').getRange('A1:C3').getValues();
      var table = SlidesApp.getActivePresentation().getSlides()[0].insertTable(values.length, 2);
      for (var i in values) {
        table.getRow(i).getCell(0).getText().appendText(values[i][0]);
        table.getRow(i).getCell(1).getText().appendText(values[i][2]);
      }
    }
    

    表格是处理电子表格数据的最简单的占位符,这个基本代码示例就是为它准备的。

    您为占位符(形状)建议了不太明显的变体,例如这里:

    考虑到占位符的排列以及它们的索引值,我们可以通过这个函数调用用导入的数据填充它们:

    function importData() {
      var ssId = '-- spreadsheet ID --';
      var values = SpreadsheetApp.openById(ssId).getSheetByName('Tabellenblatt2').getRange('A1:C4').getValues();
      var slide = SlidesApp.getActivePresentation().getSlides()[0];
      var shapes = slide.getShapes();
      for (var i in values) {
        shapes[i].getText().setText(values[i][0]);
        shapes[parseInt(i) + 4].getText().setText(values[i][2]);
      }
    }
    

    【讨论】:

    • 感谢您的帮助。我希望我的解释是可以理解的。我不想在谷歌幻灯片中创建表格。只想将工作表中的值放在幻灯片中有占位符的位置。尝试您的代码时出现以下错误:TypeError: Method "getSlides" from null 无法调用。 (第 4 行)
    • 让我们澄清一下现有的“占位符”。您是指页面元素,例如表格,而不是表格? (developers.google.com/apps-script/reference/slides/page-element) 我们应该知道如何在页面上找到它们来填充数据。我在我的幻灯片应用程序中检查了上面的代码,它正在工作。
    • 你的意思是这样的 - docs.google.com/presentation/d/…
    • 元素是一个文本框,这里是一个例子drive.google.com/…。例如,我如何在您的代码中引用该幻灯片?
    • 抱歉,我让它可以访问了。就像你在幻灯片中展示的那样。当我写评论时,几分钟前我没有看到您的评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多