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

批量将Google Sheets文件夹内文件导出为XLSX格式求助

批量导出Google Drive文件夹内所有Google Sheets为XLSX格式

以下是修改后的脚本,可实现批量导出指定文件夹内所有Google Sheets文件为XLSX格式,同时保留你原有脚本的核心导出逻辑:

function BatchExportSheetsToXLSX() {
  try {
    // 替换为你的源文件夹ID(存放所有Google Sheets的文件夹)
    const sourceFolderId = "你的源文件夹ID";
    // 替换为你要保存XLSX文件的目标文件夹ID
    const targetFolderId = "你的目标文件夹ID";
    
    const sourceFolder = DriveApp.getFolderById(sourceFolderId);
    const targetFolder = DriveApp.getFolderById(targetFolderId);
    
    // 筛选文件夹内所有Google Sheets类型的文件
    const sheetFiles = sourceFolder.getFilesByType(MimeType.GOOGLE_SHEETS);
    
    while (sheetFiles.hasNext()) {
      const file = sheetFiles.next();
      const fileId = file.getId();
      const fileName = file.getName();
      
      // 构造导出XLSX的请求URL
      const exportUrl = `https://docs.google.com/feeds/download/spreadsheets/Export?key=${fileId}&exportFormat=xlsx`;
      
      const params = {
        method: 'get',
        headers: { Authorization: 'Bearer ' + ScriptApp.getOAuthToken() },
        muteHttpExceptions: true,
      };
      
      // 获取导出的文件Blob
      const blob = UrlFetchApp.fetch(exportUrl, params).getBlob();
      // 设置XLSX文件名,避免重复可添加时间戳
      let xlsxFileName = `${fileName}.xlsx`;
      
      // 检查目标文件夹是否已有同名文件,若有则添加时间戳后缀
      if (targetFolder.getFilesByName(xlsxFileName).hasNext()) {
        const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
        xlsxFileName = `${fileName}_${timestamp}.xlsx`;
      }
      
      blob.setName(xlsxFileName);
      // 将Blob保存到目标文件夹
      targetFolder.createFile(blob);
      Logger.log(`已导出:${fileName}`);
    }
    
    Logger.log("批量导出完成");
  } catch (f) {
    Logger.log(`导出出错:${f.toString()}`);
  }
}

关键改动说明

  • 文件夹遍历与筛选:通过getFilesByType(MimeType.GOOGLE_SHEETS)精准筛选目标文件夹内的Google Sheets文件,避免处理其他类型文件
  • 批量循环处理:使用while循环遍历所有符合条件的表格文件,对每个文件执行导出逻辑
  • 重复文件名处理:增加同名文件检测,若目标文件夹已存在相同名称的XLSX文件,自动添加时间戳后缀避免覆盖
  • 参数可配置化:将源文件夹和目标文件夹ID设为常量,方便你直接替换修改

使用注意事项

  1. 替换脚本中的你的源文件夹ID和你的目标文件夹ID,可通过Google Drive文件夹的URL获取ID(URL中folders/后的字符串)
  2. 首次运行脚本时会触发权限申请,需授权脚本访问你的Google Drive文件
  3. 若文件夹内文件数量较多,脚本运行时间可能较长,可通过Google Apps脚本的「执行记录」查看进度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:52:34