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

基于单元格值修改Excel工作表标签颜色的Office Script需求

Office Script 实现工作表标签颜色批量设置(适配Power Automate)

功能说明

遍历主工作表中的两个指定表格,根据每行A列的工作表名称,找到对应工作表并将其标签颜色设置为该行G列单元格的背景色,可直接在Power Automate流中调用。

完整脚本代码

function main(workbook: ExcelScript.Workbook) {
  // 主工作表名称,按需修改
  const mainSheetName = "主工作表";
  // 两个表格的名称,按需修改
  const tableNames = ["表格1", "表格2"];

  const mainSheet = workbook.getWorksheet(mainSheetName);
  if (!mainSheet) {
    console.error(`未找到主工作表:${mainSheetName}`);
    return;
  }

  tableNames.forEach(tableName => {
    const table = mainSheet.getTable(tableName);
    if (!table) {
      console.warn(`未找到表格:${tableName},跳过处理`);
      return;
    }

    // 获取表格所有行数据
    const rows = table.getRange().getValues();
    // 跳过表头,从第二行开始遍历
    for (let i = 1; i < rows.length; i++) {
      const sheetName = rows[i][0] as string;
      const targetSheet = workbook.getWorksheet(sheetName);
      if (!targetSheet) {
        console.warn(`未找到对应工作表:${sheetName},跳过该行`);
        continue;
      }

      // 获取G列(数组索引为6)的背景色
      const colorCell = table.getRange().getCell(i, 6);
      const bgColor = colorCell.getFormat().getFill().getColor();
      if (bgColor) {
        targetSheet.setTabColor(bgColor);
      } else {
        console.warn(`行${i+1}的G列无背景色,跳过设置工作表${sheetName}标签颜色`);
      }
    }
  });
}

使用步骤

  1. 配置修改:将脚本中的mainSheetName和tableNames替换为实际的主工作表名称与两个表格名称
  2. 脚本导入:打开目标工作簿,进入「自动化」→「新建脚本」,粘贴代码后保存
  3. Power Automate集成:在流中添加「Excel Online (Business)」的「运行脚本」操作,选择对应工作簿和该脚本即可执行

关键逻辑说明

  • workbook.getWorksheet(sheetName):通过名称匹配目标工作表
  • table.getRange().getValues():提取表格所有行的二维数组数据(首行为表头)
  • colorCell.getFormat().getFill().getColor():获取指定单元格的背景色值
  • targetSheet.setTabColor(bgColor):设置工作表标签的显示颜色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:13:14