You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 07:37:36