如何修改Google Apps Script使其仅在GoogleSheet的父文件夹内搜索指定模板文件
修改后的完整代码
function createNewGoogleDoc() { // 获取当前表格和目标工作表 const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName('Magic Form'); // 获取表格所属的父文件夹,作为后续所有操作的限定范围 const ssFile = DriveApp.getFileById(ss.getId()); const parentFolder = ssFile.getParents().next(); // 读取表格内的姓名信息 const rows = sheet.getDataRange().getValues(); const firstname = rows[2][6]; const lastname = rows[3][6]; // 仅在当前父文件夹内搜索指定名称的模板,避免命中其他位置的同名文件 const templateFiles = parentFolder.getFilesByName('Lead Client Flow Funnel Copy - Template'); // 可选优化:添加模板不存在的错误提示,避免调用next()时报错 if (!templateFiles.hasNext()) { throw new Error("当前文件夹内未找到匹配的模板文件,请检查模板名称和存放位置"); } const googleDocTemplate = templateFiles.next(); // 复制模板到当前父文件夹,强制指定存储位置避免保存到其他层级目录 const copy = googleDocTemplate.makeCopy(`Lead Client Flow Funnel Copy - ${firstname} ${lastname}`, parentFolder); }
核心改动说明
- 新增步骤获取当前Google Sheet对应的Drive文件,再提取其所属的父文件夹,锁定操作范围
- 将原全局搜索文件的
DriveApp.getFilesByName替换为父文件夹实例的getFilesByName方法,仅在目标文件夹内匹配模板 - 调用
makeCopy方法时传入父文件夹作为第二个参数,强制将生成的副本存储到当前父文件夹内
内容的提问来源于stack exchange,提问作者Aaron
相关产品推荐
相关产品推荐

