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

如何修改谷歌表单脚本 将Google Drive存储文件夹命名为受访者姓名字段

Google表单自动转存上传文件自定义子文件夹名方案

修改后完整代码

// 替换为你自己的目标Google Drive父文件夹ID
const PARENT_FOLDER_ID = "2ih2384723847234878h23jkbi2j3b4ijb23i4bhwed34f";
// 替换为你表单里姓名字段的精确标题,要和表单里的问题文本完全一致
const NAME_FIELD_TITLE = "姓名(First Name_Last Name)";

const initialize = () => {
  const form = FormApp.getActiveForm();
  ScriptApp.newTrigger("onFormSubmit").forForm(form).onFormSubmit().create();
};

const onFormSubmit = ({ response } = {}) => {
  try {
    // 提取当前提交的所有上传文件ID
    const files = response
      .getItemResponses()
      // 只筛选文件上传类问题的回答
      .filter(
        (itemResponse) =>
          itemResponse.getItem().getType().toString() === "FILE_UPLOAD"
      )
      .map((itemResponse) => itemResponse.getResponse())
      // 展平文件ID数组
      .reduce((a, b) => [...a, ...b], []);

    if (files.length > 0) {
      // 提取受访者填写的姓名作为子文件夹名
      let subfolderName = response.getItemResponses()
        .filter(itemResponse => itemResponse.getItem().getTitle() === NAME_FIELD_TITLE)
        .map(itemResponse => itemResponse.getResponse())[0];
      
      // 容错处理:如果没取到姓名就 fallback 用响应ID
      if(!subfolderName) subfolderName = response.getId();

      const parentFolder = DriveApp.getFolderById(PARENT_FOLDER_ID);
      // 重名处理:如果已有同名文件夹,加时间戳后缀避免冲突
      const existingFolders = parentFolder.getFoldersByName(subfolderName);
      if(existingFolders.hasNext()) {
        subfolderName = `${subfolderName}_${new Date().getTime()}`;
      }

      const subfolder = parentFolder.createFolder(subfolderName);
      // 转存所有上传文件到目标子文件夹
      files.forEach((fileId) => {
        DriveApp.getFileById(fileId).moveTo(subfolder);
      });
    }
  } catch (f) {
    Logger.log(f);
  }
};

配置说明

  • 先把代码里PARENT_FOLDER_ID的值替换为你自己的Google Drive目标父文件夹ID,ID可以从文件夹的浏览器地址栏里提取
  • 再把NAME_FIELD_TITLE的值替换为你谷歌表单里姓名字段的精确标题,必须和你表单里设置的问题文本完全一致,包括标点、空格都不能有差异
  • 新增了双重容错逻辑:如果没提取到姓名会自动 fallback 用原有的响应ID当文件夹名,如果出现重名会自动加时间戳后缀,不会出现创建文件夹失败的问题
  • 部署方式和原来一致,运行一次initialize函数授权触发即可使用

内容的提问来源于stack exchange,提问作者NOOR UL KARIM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:27:03