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

如何用Google Sheets与Apps Script提取共享云端硬盘数据至表格?

提取共享云端硬盘文件信息到Google Sheets(Apps Script实现)

这个需求完全可行,核心是在Apps Script中指定共享云端硬盘/目标文件夹的ID,而非默认访问个人云端硬盘。以下是具体实现步骤:

1. 获取共享云端硬盘/目标文件夹的ID

打开共享云端硬盘(或目标文件夹),查看浏览器地址栏:

  • 共享硬盘的地址格式类似 https://drive.google.com/drive/u/0/drives/XXXXXX,其中XXXXXX是硬盘ID
  • 文件夹的地址格式类似 https://drive.google.com/drive/u/0/folders/XXXXXX,其中XXXXXX是文件夹ID
    复制这个ID备用。

2. 编写Apps Script代码

打开目标Google Sheets,点击「扩展程序」→「Apps Script」,替换默认代码为以下内容:

function extractSharedDriveFiles() {
  // 替换为你的共享云端硬盘ID或目标文件夹ID
  const targetId = "替换为你的共享硬盘/文件夹ID";
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // 清空旧数据(保留表头)
  sheet.clearContents();
  const headers = ["文件名", "创建日期", "修改日期", "文件链接", "文件类型"];
  sheet.appendRow(headers);
  
  // 尝试获取目标位置:优先共享硬盘,其次文件夹
  let target;
  try {
    target = DriveApp.getDriveById(targetId);
    // 遍历共享硬盘内的所有文件和文件夹
    processFiles(target.getFiles(), sheet);
    processFolders(target.getFolders(), sheet);
  } catch (e) {
    try {
      target = DriveApp.getFolderById(targetId);
      processFolderRecursively(target, sheet);
    } catch (err) {
      SpreadsheetApp.getUi().alert("ID无效或无访问权限:" + err.message);
      return;
    }
  }
}

// 递归处理文件夹内的文件和子文件夹
function processFolderRecursively(folder, sheet) {
  processFiles(folder.getFiles(), sheet);
  const subFolders = folder.getFolders();
  while (subFolders.hasNext()) {
    processFolderRecursively(subFolders.next(), sheet);
  }
}

// 批量处理文件并写入表格
function processFiles(files, sheet) {
  while (files.hasNext()) {
    const file = files.next();
    const row = [
      file.getName(),
      file.getDateCreated(),
      file.getLastUpdated(),
      `=HYPERLINK("${file.getUrl()}")`, // 生成可点击的文件链接
      file.getMimeType()
    ];
    sheet.appendRow(row);
  }
}

// 处理共享硬盘内的顶层文件夹
function processFolders(folders, sheet) {
  while (folders.hasNext()) {
    processFolderRecursively(folders.next(), sheet);
  }
}

3. 权限与运行说明

  • 首次运行脚本时,会触发权限授权流程,需要允许脚本访问你的Google Drive和Sheets。确保你对目标共享硬盘/文件夹有至少「查看者」权限,否则会提示权限不足。
  • 如果遇到「权限不足」错误,检查共享硬盘的权限设置,确认你能在网页端正常访问该资源。
  • 可根据需求修改表头,或添加更多文件属性(比如文件大小file.getSize()、所有者file.getOwner().getEmail()等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 10:42:37