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

如何通过Google Apps Script或Drive API将谷歌表格导出为旧版XLS格式?

谷歌表格导出为旧版XLS格式的实现方案

问题场景

需要通过Google Apps Script或Google Drive API直接将谷歌表格导出为旧版XLS格式(适配老旧应用),目前已掌握XLSX导出方法:

var url = file.exportLinks[MimeType.MICROSOFT_EXCEL]; // 导出XLSX格式

但以下两种尝试均失败:

  1. 调用旧版MIME类型导出:
var url = file.exportLinks['application/vnd.ms-excel'];

返回undefined,该导出方式已被官方弃用。
2. 直接访问导出链接:

https://docs.google.com/spreadsheets/export?exportFormat=xls&id=[MY_FILE_ID]

无法打开目标文件,此格式导出路径已失效。

可行实现方案

由于Google官方已停止支持直接导出XLS格式,可通过脚本内自动转换完成需求,无需手动借助第三方工具:

步骤1:引入SheetJS转换库

打开你的Google Apps Script项目,依次点击「资源」→「库」,输入库ID 1ReeQ6WO8kKNxoaA_O0XEQ589cIrRvEBA9qcWpNqdOP17i47u6N9M5Xh0,选择最新版本,将库命名为XLSX并添加。

步骤2:编写完整转换脚本

function exportSheetToXLS(fileId) {
  // 1. 导出谷歌表格为XLSX格式Blob
  var targetFile = DriveApp.getFileById(fileId);
  var xlsxBlob = targetFile.getAs(MimeType.MICROSOFT_EXCEL);
  
  // 2. 使用SheetJS将XLSX转换为XLS格式
  var xlsxData = XLSX.read(xlsxBlob.getDataAsString(), {type: 'binary'});
  var xlsBinary = XLSX.write(xlsxData, {bookType:'xls', type:'binary'});
  var xlsBlob = Utilities.newBlob(xlsBinary, 'application/vnd.ms-excel', targetFile.getName() + '.xls');
  
  // 3. 将生成的XLS文件保存到Google Drive
  DriveApp.createFile(xlsBlob);
}

权限配置

确保你的Apps Script项目已启用Drive API权限:

  1. 点击「项目设置」,勾选「显示"appsscript.json"清单文件」。
  2. 打开appsscript.json,在oauthScopes数组中添加:
"https://www.googleapis.com/auth/drive"

注意事项

  • 转换后的XLS文件兼容旧版Office应用,无需额外格式调整。
  • 若表格包含复杂公式或样式,转换后可能存在细微差异,需提前测试验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 01:27:34