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

Google Apps Script问题:修改表单上传文件名并移至共享云端硬盘

问题解决代码及说明

下面是修正后的代码,解决了提取文件ID、重命名、移动到共享云端硬盘及清理原文件关联的问题:

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Responses"); // 明确指定目标工作表,避免激活表错误
  var lastRow = sheet.getLastRow();
  
  // 提取表单输入数据
  var Lot = sheet.getRange(lastRow, 2).getValue();
  var Part = sheet.getRange(lastRow, 3).getValue();
  var Heat = sheet.getRange(lastRow, 4).getValue();
  var CertDate = sheet.getRange(lastRow, 5).getValue();
  var Basic = sheet.getRange(lastRow, 6).getValue();
  var Notes = sheet.getRange(lastRow, 7).getValue();
  var PO = sheet.getRange(lastRow, 8).getValue();
  
  // 生成新文件名(用数组拼接更简洁)
  var Cert = "Certification";
  var newFileName = [Cert, Lot, Part, Heat, CertDate, Basic, Notes, PO].join(" - ");
  sheet.getRange(lastRow, 10).setValue(newFileName);
  
  // 从Drive URL中提取文件ID(正则适配所有Drive文件URL格式)
  var fileUrl = sheet.getRange(lastRow, 9).getValue();
  var fileId = fileUrl.match(/[-\w]{25,}/)[0];
  
  // 配置共享云端硬盘ID(替换为你的实际ID)
  const TEAMDRIVEID = "你的共享云端硬盘ID";
  var targetFolder = DriveApp.getFolderById(TEAMDRIVEID);
  var file = DriveApp.getFileById(fileId);
  
  // 重命名文件
  file.setName(newFileName);
  
  // 移动文件到共享云端硬盘:先移除原文件夹关联,再添加到目标文件夹
  var originalParents = file.getParents();
  while (originalParents.hasNext()) {
    var originalParent = originalParents.next();
    originalParent.removeFile(file);
  }
  targetFolder.addFile(file);
  
  // 可选:若需彻底删除原文件(不推荐,移动后文件已在共享盘)
  // file.setTrashed(true);
}

关键修改说明

  • 指定工作表:用getSheetByName替代getActiveSheet,避免因当前激活表不是"Responses"而出错
  • 简化文件名生成:数组join方法比多次字符串拼接更易维护
  • 可靠提取文件ID:正则表达式[-\w]{25,}能匹配所有格式的Drive文件ID,比split方法兼容性更强
  • 共享盘文件移动逻辑:共享云端硬盘中移动文件需先移除原父文件夹的关联,再添加到目标文件夹,避免权限问题
  • 重命名时机:先获取文件实例再执行重命名,确保修改生效

注意事项

  1. 务必将TEAMDRIVEID替换为你的共享云端硬盘实际ID(可从共享盘URL中提取)
  2. 首次运行脚本时会触发授权申请,需允许脚本访问Drive和表格权限
  3. 当前代码仅处理最后一行数据,若需批量处理历史提交,可添加循环遍历多行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 12:13:14