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

使用AppScript将Excel转Google Sheet时遭遇Drive API“文件未找到”错误

问题解决:Drive.Files.insert 报错“File not found: WIP”

核心错误点分析

你的代码存在两处关键问题,直接导致了该报错:

  1. parents参数传入类型错误
    构建file元数据时,parents: [{id: folder}]中的folder是DriveApp返回的Folder对象,但Drive API要求传入的是文件夹ID字符串,需替换为folder.getId()。

  2. supportsAllDrives参数位置错误
    supportsAllDrives是Drive API方法的可选参数,不能放在元数据对象里,必须作为Drive.Files.insert的第三个参数传入。

修正后的完整代码

function save_new_WIP() {
  // 查找目标邮件附件
  var threads = GmailApp.search('in:inbox subject:"WIP Update" to: "xxxxxxxxx"');
  var message = threads[0].getMessages();
  var attachment = message[message.length - 1].getAttachments()[0];

  // 将Excel附件保存到指定Drive文件夹
  var folder = DriveApp.getFolderById("1uFvXhIIst_ksjZysyH-09TYeo5k44YvO");
  var fileName = attachment.getName();
  var newWIP = folder.createFile(attachment).setName(fileName);
  var ID = newWIP.getId();

  // 转换Excel文件为Google Sheet
  const excel = DriveApp.getFileById(ID);
  let fileMetadata = {
    title: 'converted',
    mimeType: MimeType.GOOGLE_SHEETS,
    parents: [{id: folder.getId()}] // 修正:传入文件夹ID字符串
  };

  // 修正:将supportsAllDrives作为方法参数传入
  file = Drive.Files.insert(fileMetadata, excel, {supportsAllDrives: true});
}

额外验证项

  • 确认已在AppScript编辑器的服务菜单中启用了Drive API(需手动添加,不是默认的DriveApp服务);
  • 确保脚本运行账号对目标Drive文件夹拥有读写权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 07:23:23