基于模板生成表格的脚本:如何通过ID指定目标文件夹?
将生成的电子表格保存到指定Drive文件夹的解决方案
你只需要借助DriveApp服务,在创建新表格后将其移动到目标文件夹即可解决这个问题——因为SpreadsheetApp.create()默认会把文件创建在个人Drive的根目录。下面是修改后的完整脚本:
function onOpen() { SpreadsheetApp.getUi().createMenu('Genera Scheda') .addItem('Genera Scheda', 'createSpreadsheet') .addToUi() } function createSpreadsheet() { // 替换成你的目标文件夹ID const TARGET_FOLDER_ID = "你的文件夹ID"; var ss = SpreadsheetApp.getActive(); var sheet = ss.getActiveSheet(); var row = sheet.getActiveCell().getRow(); var name = sheet.getRange(row, 2).getValue(); var templateSheet1 = ss.getSheetByName('xxx'); var templateSheet2 = ss.getSheetByName('xxx2'); // 依然创建新表格(默认在根目录) var newSpreadsheet = SpreadsheetApp.create(name); templateSheet1.copyTo(newSpreadsheet).setName("Scheda"); templateSheet2.copyTo(newSpreadsheet).setName("Import"); newSpreadsheet.deleteSheet(newSpreadsheet.getSheetByName("Foglio1")); // 获取新表格对应的Drive文件,并移动到目标文件夹 const newFile = DriveApp.getFileById(newSpreadsheet.getId()); const targetFolder = DriveApp.getFolderById(TARGET_FOLDER_ID); newFile.moveTo(targetFolder); }
关键说明:
- 获取文件夹ID:打开目标Drive文件夹,查看浏览器地址栏,URL末尾的一串长字符就是文件夹ID(比如
https://drive.google.com/drive/folders/XXXXXXXXXXXXXXXXXXXXXX中的XXXXXXXXXXXXXXXXXXXXXX) - 权限授权:第一次运行修改后的脚本时,系统会提示需要额外的Drive访问权限,你需要授权通过才能让脚本移动文件
- 移动逻辑:
moveTo()方法会把文件从原位置(根目录)移动到目标文件夹,不会留下副本
这样修改后,生成的电子表格就会直接出现在你指定的文件夹里,而不是个人Drive的根目录了。
内容的提问来源于stack exchange,提问作者user13509354
相关产品推荐
相关产品推荐

