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

如何在独立脚本中通过openById获取所有工作表并批量操作

解决方案

1. 对所有工作表生效的实现

直接获取电子表格内所有工作表的数组,遍历执行目标操作:

function doSomethingForAllSheets(){
    var ssID = "123abc";
    var ss = SpreadsheetApp.openById(ssID);
    // 获取全部工作表的数组
    var allSheets = ss.getSheets();

    // 逐个处理每个工作表
    allSheets.forEach(function(sheet) {
        var range = sheet.getRangeList(['A3:A','D3:D']);
        range.setFontFamily("Arial");
        // 添加其他需要执行的操作
    });
}

关键说明

  • 用ss.getSheets()替代原代码的getActiveSheet(),前者返回所有工作表的数组,后者仅获取当前激活的单个工作表
  • 通过forEach循环遍历数组,确保操作覆盖每一张表

2. 排除指定工作表的实现

定义需要跳过的工作表名称列表,遍历过程中过滤这些表:

function doSomethingExceptSheets(){
    var ssID = "123abc";
    var ss = SpreadsheetApp.openById(ssID);
    var allSheets = ss.getSheets();
    // 自定义需要排除的工作表名称(按需修改)
    const excludedSheetNames = ["模板表", "历史归档"];

    allSheets.forEach(function(sheet) {
        // 仅处理不在排除列表中的工作表
        if (!excludedSheetNames.includes(sheet.getName())) {
            var range = sheet.getRangeList(['A3:A','D3:D']);
            range.setFontFamily("Arial");
            // 添加其他需要执行的操作
        }
    });
}

关键说明

  • sheet.getName()获取当前工作表的名称,用于和排除列表比对
  • !excludedSheetNames.includes(...)判断逻辑:仅当工作表名称不在排除列表时,才执行后续操作
  • 可根据实际需求修改excludedSheetNames数组内的名称

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:36:20