如何用Google Apps Script获取Google幻灯片中嵌入表格的Spreadsheet ID
获取Google幻灯片中嵌入表格的源电子表格ID
从电子表格嵌入到Google幻灯片的表格,并非普通的Table对象,而是以**关联表格(LinkedSheetsTable)**的形式嵌套在形状(Shape)中。因此不能直接通过getTables()方法获取源信息,需要通过以下方式处理:
核心思路
- 遍历幻灯片上的所有形状(Shape)
- 判断每个形状是否包含关联表格
- 若存在关联表格,调用其方法获取源电子表格ID及其他关联信息
代码实现
var newSlide = SlidesApp.getActivePresentation().getSelection().getCurrentPage().asSlide(); var tableInfos = []; // 获取幻灯片内所有形状 var shapes = newSlide.getShapes(); for (var i = 0; i < shapes.length; i++) { // 尝试获取形状中的关联表格 var linkedTable = shapes[i].getLinkedSheetsTable(); if (linkedTable) { tableInfos.push({ linkedTable: linkedTable, sourceSpreadsheetId: linkedTable.getSpreadsheetId(), // 源电子表格ID sourceSheetId: linkedTable.getSheetId(), // 源工作表ID sourceRange: linkedTable.getRange() // 源数据范围 }); } }
关键说明
getTables()方法仅能获取幻灯片中手动创建的本地表格,无法识别从电子表格嵌入的关联表格- 关联表格必须通过形状的
getLinkedSheetsTable()方法获取,该方法返回LinkedSheetsTable对象,包含getSpreadsheetId()、getSheetId()等关键方法
内容的提问来源于stack exchange,提问作者zlZimon
相关产品推荐
相关产品推荐

