我想将一个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列中的值逐行填充到幻灯片中,直到工作表的最后一行,并将其余的占位符留空。
答案 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]);
}
}
表是处理电子表格数据的最简单的占位符,此基本代码示例适用于此。
您建议使用不太明显的占位符(形状)变体,例如:
考虑到占位符的排列及其索引值,我们可以通过以下函数调用用导入的数据填充它们:
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]);
}
}