0

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

我从 google developerpers找到了这个视频,但他们使用 api 来更新幻灯片,我不需要。在stackoverflow中,最接近的问题是here,其中将工作表的范围复制到幻灯片中。

例如这张表

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

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

4

1 回答 1

0

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

我们可以通过电子表格和幻灯片容器中的谷歌脚本来完成。我选择了具有已知电子表格 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]);
  }
}
于 2018-12-25T09:28:38.523 回答