合并Google Apps Script:复制Slides模板并从Sheets自动填充数据
合并Google Apps Script实现复制模板并填充数据的完整函数
直接将两个步骤整合为一个函数,核心是复制模板后立即获取新演示文稿的ID,再执行占位符替换操作,完整代码如下:
function copyAndFillTemplate() { // 替换为你的模板演示文稿ID const templateId = '<ID OF MY TEMPLATE DECK>'; // 步骤1:从Generate工作表获取数据并复制模板 const generateSheet = SpreadsheetApp.getActive().getSheetByName('Generate'); const generateData = generateSheet.getDataRange().getValues(); const wbrDate = generateData[1][0]; // 复制模板并获取新文件对象 const newPresentationFile = DriveApp.getFileById(templateId).makeCopy(`WBR - ${wbrDate}`); const newPresentationId = newPresentationFile.getId(); // 步骤2:从Data工作表获取数据并替换占位符 const presentation = SlidesApp.openById(newPresentationId); const dataSheet = SpreadsheetApp.getActive().getSheetByName('Data'); const dataValues = dataSheet.getDataRange().getValues(); dataValues.forEach(row => { const templateVariable = row[0]; const templateValue = row[1]; presentation.replaceAllText(templateVariable, templateValue); }); // 可选:提示操作完成 SpreadsheetApp.getUi().alert('演示文稿已复制并填充完成!'); }
关键说明
- 移除了原代码中需要手动填写新文稿ID的步骤,通过
makeCopy()返回的文件对象直接获取ID,保证流程自动化 - 保留了你原有的工作表数据读取逻辑,兼容
Generate和Data工作表的结构 - 新增了可选的完成提示,方便确认操作结果
- 注意将
<ID OF MY TEMPLATE DECK>替换为你实际的模板演示文稿ID
内容的提问来源于stack exchange,提问作者coffee709
相关产品推荐
相关产品推荐

