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

Google Sheets脚本实现:如何将工作表复制到新文件?

解决Google Sheets中复制工作表到新文件的问题

完整实现代码

function EXPORT() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  
  // 1. 复制SOURCE工作表内容
  const sourceSheet = ss.getSheetByName('SOURCE');
  const sourceRange = sourceSheet.getDataRange();
  
  // 2. 粘贴值和格式到TEMP工作表
  const tempSheet = ss.getSheetByName('TEMP');
  tempSheet.clearContents();
  sourceRange.copyTo(tempSheet.getRange('A1'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  sourceRange.copyTo(tempSheet.getRange('A1'), SpreadsheetApp.CopyPasteType.PASTE_FORMATS, false);
  
  // 3. 将TEMP工作表复制到新文件
  const newSpreadsheet = SpreadsheetApp.create('导出结果');
  tempSheet.copyTo(newSpreadsheet);
  
  // 移除新文件默认的Sheet1(可选操作)
  newSpreadsheet.deleteSheet(newSpreadsheet.getSheetByName('Sheet1'));
  
  // 可选:根据单元格内容自定义文件名(示例取SOURCE表A1单元格值)
  // const customFileName = sourceSheet.getRange('A1').getValue();
  // newSpreadsheet.rename(customFileName);
}

关键说明

  • 摒弃Select/Activate操作:Google Apps Script无需像Excel VBA那样依赖单元格选择,直接操作工作表、范围对象更高效,也避免了选择状态导致的错误。
  • 复制工作表到新文件:tempSheet.copyTo(newSpreadsheet)对应手动操作里的「复制到→新电子表格」功能,新建文件后直接将指定工作表复制过去。
  • 自定义文件名:取消注释最后两行代码,替换A1为你存储文件名的单元格地址即可实现需求。

排查要点

  • 确认工作表名称完全匹配:SOURCE和TEMP要与实际工作表名一致,注意大小写区分。
  • 权限授权:首次运行脚本会弹出权限申请,需允许脚本访问你的Google Sheets文件。
  • 错误处理:若出现「找不到工作表」或「权限不足」提示,优先检查名称拼写和授权状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:03:20