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

Google Apps Script下载XLS附件被识别为Word文档的修复咨询

解决Google Apps Script中XLS附件存Drive被误识别为Word的问题

你的问题核心是邮件附件的MIME类型被标记为application/octet-stream,而非Excel对应的标准类型,导致Google Drive自动识别错误。你现在先创建文件再修改MIME类型的方式行不通,因为Drive会根据初始Blob的类型做自动归类,后续修改无法覆盖这个识别结果。

修复方案:创建文件时直接指定正确的MIME类型

不需要先创建再更新,直接在createFile方法中明确指定Excel的MIME类型,从根源告诉Drive这是一个Excel文件。

修改后的完整代码

function downloadAttachmentsAndMarkAsRead() {
  var senderEmail = "support@site.com";
  var searchQuery = "from:" + senderEmail + " is:unread has:attachment filename:xls";

  var threads = GmailApp.search(searchQuery);
  var folder = DriveApp.getFolderById("1i8Bh0cy3R1hRFix9t4yc0fCTksLD4oNY");

  for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    for (var j = 0; j < messages.length; j++) {
      var message = messages[j];
      message.markRead();

      var attachments = message.getAttachments();
      for (var k = 0; k < attachments.length; k++) {
        var attachment = attachments[k];
        var contentType = attachment.getContentType();
        Logger.log("Original MIME type: " + contentType);

        // 强制将附件设置为XLS的MIME类型,覆盖octet-stream的错误标记
        var excelBlob = attachment.copyBlob().setContentType(MimeType.MICROSOFT_EXCEL);
        var file = folder.createFile(excelBlob, attachment.getName());

        Logger.log("Downloaded: " + file.getName() + " | MIME type set to: " + MimeType.MICROSOFT_EXCEL);
      }
    }
  }
}

关键改动说明

  1. setContentType强制指定MIME类型:通过attachment.copyBlob().setContentType(MimeType.MICROSOFT_EXCEL),把原本可能是octet-stream的Blob转换成标准的XLS类型。
  2. 直接创建正确类型的文件:将处理后的Blob传入createFile,Drive会直接识别为Excel文件,不会再误判为Word。

额外注意事项

  • 如果你的附件是XLSX格式(新版Excel),把MimeType.MICROSOFT_EXCEL换成MimeType.MICROSOFT_EXCEL_XLSX即可,对应的MIME类型是application/vnd.openxmlformats-officedocument.spreadsheetml.sheet。
  • 上面的代码使用原生DriveApp服务,无需额外启用高级API,直接运行即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 15:53:09