如何在Google Apps Script中获取绑定电子表格所在文件夹的名称
获取绑定电子表格所在文件夹的名称(Google Apps Script实现)
嘿,刚好我对Google Apps Script操作Drive这块熟得很,给你一步步讲怎么搞定这个需求!
核心思路
Google Sheets本质就是Google Drive里的一个文件,所以我们可以通过Apps Script的DriveApp服务,先拿到当前绑定脚本的表格对应的Drive文件,再提取它的父文件夹名称。
完整健壮版代码
这个版本会处理表格直接存放在根目录的情况,避免报错:
function getSpreadsheetFolderName() { // 1. 获取当前绑定的电子表格对象 const activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // 2. 拿到表格对应的Drive文件ID const spreadsheetFileId = activeSpreadsheet.getId(); // 3. 通过ID获取Drive中的文件对象 const spreadsheetFile = DriveApp.getFileById(spreadsheetFileId); // 4. 获取父文件夹并提取名称(处理多父文件夹/根目录情况) const parentFolderIterator = spreadsheetFile.getParents(); if (parentFolderIterator.hasNext()) { const folderName = parentFolderIterator.next().getName(); console.log("当前表格所在文件夹:" + folderName); // 返回名称供后续逻辑使用 return folderName; } else { console.log("提示:该电子表格直接存放在云端硬盘根目录"); return "根目录"; } }
代码细节解释
SpreadsheetApp.getActiveSpreadsheet():直接获取当前绑定脚本的电子表格,不用手动输入ID,适配性拉满。DriveApp.getFileById():把表格转换成Drive文件对象,这样才能访问它的文件夹关联属性。getParents():返回一个文件夹迭代器(因为Drive支持文件同时放在多个文件夹),用hasNext()判断是否存在父文件夹,避免表格在根目录时抛出错误。
简化版(适合确定表格不在根目录的场景)
如果你能确定表格一定存放在某个子文件夹里,可以用更简洁的写法:
function getFolderNameQuick() { const folderName = DriveApp.getFileById(SpreadsheetApp.getActiveSpreadsheet().getId()) .getParents() .next() .getName(); console.log(folderName); return folderName; }
注意事项
第一次运行脚本时,会弹出授权请求,需要你允许脚本访问你的Google Drive数据——这是正常的权限要求,放心授权即可。
内容的提问来源于stack exchange,提问作者Ahmed Mohamed
相关产品推荐
相关产品推荐

