如何将Google表格单元格一一粘贴到Google幻灯片中

时间:2018-12-25 07:00:12

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

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

我找到了this video from google developpers,但是他们使用了api来更新幻灯片,而我并不需要。在stack closest question is here中,将一张纸的范围复制到幻灯片中。

例如此表

A列__________列B_________列C
Paul______________Baker____________纽约
杰里______________史密斯____________芝加哥
蒂姆________________约翰逊__________洛杉矶

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

1 个答案:

答案 0 :(得分:0)

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

我们可以通过Spreadsheet和Slide容器中的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]);
  }
}

表是处理电子表格数据的最简单的占位符,此基本代码示例适用于此。

您建议使用不太明显的占位符(形状)变体,例如:

enter image description here

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

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]);
  }
}