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

如何在Google表格所在父文件夹批量创建带共享权限的文件夹

解决Google表格脚本在同目录创建文件夹并添加协作者的问题

你的代码存在几处逻辑错误,导致无法在表格所在文件夹创建目录,以下是修正后的完整代码及问题说明:

修正后的代码

function createFolders() {
  // 获取当前表格文件对象
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  // 获取表格所在的父文件夹
  const parentFolder = DriveApp.getFileById(spreadsheet.getId()).getParents().next();

  // 获取A、B列的有效数据范围(仅读取有内容的行)
  const dataRange = spreadsheet.getActiveSheet().getDataRange();
  const data = dataRange.getValues();

  // 遍历数据创建文件夹并添加协作者
  for (let i = 0; i < data.length; i++) {
    const folderName = data[i][0];
    const emailAddress = data[i][1];
    if (folderName) {
      // 在目标父文件夹内创建子文件夹
      const folder = parentFolder.createFolder(folderName);
      // 仅当邮箱不为空时添加编辑者,避免报错
      if (emailAddress) {
        folder.addEditor(emailAddress);
      }
    }
  }
}

关键修改说明

  • 正确获取表格所在文件夹:原代码用sheet.getParent()无法拿到Drive文件夹,改为通过表格文件ID获取其父文件夹,getParents().next()用于取出迭代器中的第一个父文件夹(表格通常仅存于一个文件夹中)
  • 避免无效空行处理:原代码读取整列A:A、B:B会包含大量空行,改用getDataRange()仅读取有内容的单元格范围,提升脚本效率
  • 在指定文件夹内创建目录:原代码调用DriveApp.createFolder()默认在My Drive根目录创建,改为调用父文件夹对象的createFolder()方法,确保文件夹生成在表格所在目录
  • 增加邮箱非空判断:防止邮箱单元格为空时执行addEditor()抛出错误

内容的提问来源于stack exchange,提问作者J Dallimore

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:10:28