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

使用TypeScript自动化Excel条件格式:双单元格规则整行着色

在TypeScript中实现Excel多单元格条件的整行高亮格式

我们可以使用exceljs库来实现Excel的条件格式自动化,这是一个适用于TypeScript/JavaScript的常用Excel处理工具。

步骤1:安装依赖

首先安装exceljs:

npm install exceljs

步骤2:实现核心代码

以下是完整的示例代码,实现你需要的「B列单元格包含"Y(UP)KZR"且G列单元格包含"DN to UP"时高亮整行」的规则,你可以直接复制修改来实现另外三条规则:

import ExcelJS from 'exceljs';

async function applyRowConditionalFormatting(sourceFilePath: string, outputFilePath: string) {
  // 读取源Excel文件
  const workbook = new ExcelJS.Workbook();
  await workbook.xlsx.readFile(sourceFilePath);
  
  // 选择目标工作表(这里取第一个工作表,可按名称修改:workbook.getWorksheet('Sheet1'))
  const worksheet = workbook.worksheets[0];
  if (!worksheet) {
    console.error('未找到目标工作表');
    return;
  }

  // 规则1:B列含"Y(UP)KZR"且G列含"DN to UP",整行高亮
  worksheet.addConditionalFormatting({
    ref: 'A:XFD', // 应用到所有列,确保整行被覆盖
    rules: [
      {
        type: 'expression',
        formula: [
          'AND(ISNUMBER(SEARCH("Y(UP)KZR", B1)), ISNUMBER(SEARCH("DN to UP", G1)))'
        ],
        style: {
          fill: {
            type: 'pattern',
            pattern: 'solid',
            fgColor: { argb: 'FFFFCC00' } // 黄色填充,替换为你需要的ARGB颜色值
          }
        }
      }
    ]
  });

  // ------------------- 复制以下代码添加其他规则 -------------------
  /*
  // 规则2:示例规则,可修改条件和颜色
  worksheet.addConditionalFormatting({
    ref: 'A:XFD',
    rules: [
      {
        type: 'expression',
        formula: [
          'AND(ISNUMBER(SEARCH("目标文本1", D1)), ISNUMBER(SEARCH("目标文本2", F1)))'
        ],
        style: {
          fill: {
            type: 'pattern',
            pattern: 'solid',
            fgColor: { argb: 'FF00FF00' } // 绿色填充
          }
        }
      }
    ]
  });

  // 规则3:继续添加
  worksheet.addConditionalFormatting({
    ref: 'A:XFD',
    rules: [
      {
        type: 'expression',
        formula: [
          // 自定义你的条件公式
        ],
        style: {
          fill: {
            type: 'pattern',
            pattern: 'solid',
            fgColor: { argb: 'FF00B0F0' } // 蓝色填充
          }
        }
      }
    ]
  });
  */

  // 写入格式化后的文件
  await workbook.xlsx.writeFile(outputFilePath);
  console.log('条件格式应用完成,已保存到目标文件');
}

// 调用函数,替换为你的源文件和输出文件路径
applyRowConditionalFormatting('你的源文件.xlsx', '格式化后的文件.xlsx');

关键说明

  • 匹配逻辑:使用SEARCH做模糊匹配(不区分大小写),如果需要精确匹配或区分大小写,可替换为FIND;AND用于同时满足两个单元格的条件
  • 应用范围:ref: 'A:XFD'覆盖了Excel的所有列,确保整行都能被高亮;如果只需要特定行范围,可改为'1:100'这样的行区间
  • 颜色设置:fgColor.argb使用ARGB颜色码,你可以在Excel中取色后获取对应代码(比如黄色是FFFFCC00)
  • 多规则扩展:直接复制addConditionalFormatting代码块,修改公式中的单元格引用、匹配文本以及填充颜色,即可快速添加其他三条规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:35:22