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

如何将Google Sheet指定标签页归档到Drive文件夹的单个表格

解决方案:合并多标签页为单个Google Sheet归档

优化后的脚本

以下脚本会直接创建一个新的Google Sheet,将你指定的7个标签页全部复制到其中,生成单一归档文件,无需导出XLSX:

function archiveWeeklySheets() {
  // 配置:填写需要归档的标签页信息(表格ID和标签页名称)
  const sheetsToArchive = [
    {spreadsheetId: "[ID OF TAB 1]", sheetName: "Main Camden Timesheet"},
    {spreadsheetId: "[ID OF TAB 2]", sheetName: "BRERCY Timesheet"},
    {spreadsheetId: "[ID OF TAB 3]", sheetName: "BP Timesheet"},
    {spreadsheetId: "[ID OF TAB 4]", sheetName: "CTW Timesheet"},
    {spreadsheetId: "[ID OF TAB 5]", sheetName: "CUE Timesheet"},
    {spreadsheetId: "[ID OF TAB 6]", sheetName: "DD Timesheet"},
    {spreadsheetId: "[ID OF TAB 7]", sheetName: "USG Timesheet"}
  ];

  // 获取归档文件名(沿用你原脚本的日期来源)
  const mainSheet = SpreadsheetApp.getActive().getSheetByName('Main Camden Timesheet');
  const datePrefix = mainSheet.getRange(5, 3).getValue();
  const archiveFileName = `${datePrefix} - Weekly Timesheet Archive`;

  // 创建新的归档Google Sheet
  const archiveSpreadsheet = SpreadsheetApp.create(archiveFileName);
  const archiveId = archiveSpreadsheet.getId();

  // 遍历每个需要归档的标签页,复制到新表格
  sheetsToArchive.forEach(item => {
    const sourceSpreadsheet = SpreadsheetApp.openById(item.spreadsheetId);
    const sourceSheet = sourceSpreadsheet.getSheetByName(item.sheetName);
    
    // 复制标签页到归档表格,保留格式和数据
    sourceSheet.copyTo(archiveSpreadsheet);
  });

  // 可选:删除新表格默认的"Sheet1"
  const defaultSheet = archiveSpreadsheet.getSheetByName("Sheet1");
  if (defaultSheet) {
    archiveSpreadsheet.deleteSheet(defaultSheet);
  }

  // 可选:将归档表格移动到指定Drive文件夹(取消注释并填写文件夹ID)
  // const targetFolder = DriveApp.getFolderById('[ID OF GOOGLE DRIVE FOLDER]');
  // DriveApp.getFileById(archiveId).moveTo(targetFolder);

  console.log(`归档完成:${archiveFileName}`);
}

关键说明

  • 配置部分:将sheetsToArchive数组里的spreadsheetId替换为你实际的表格ID,确保sheetName和目标标签页名称一致
  • 文件名生成:沿用你原脚本的逻辑,从Main Camden Timesheet的C5单元格获取日期前缀,生成统一的归档文件名
  • 复制逻辑:使用copyTo方法直接复制整个标签页,保留原有的格式、数据和公式,比导出XLSX再导入更高效
  • 可选操作:可以删除默认的Sheet1,也可以指定Drive文件夹存放归档文件,取消对应注释即可

使用方法

  1. 打开你的Google Sheet,进入「扩展程序」→「Apps脚本」
  2. 删除原有代码,粘贴上述优化后的脚本
  3. 替换所有占位符([ID OF TAB X]等)
  4. 保存并运行archiveWeeklySheets函数,首次运行需要授权权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:05:07