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

如何使用Excel JavaScript API遍历范围并高亮双列均含数据的行

Excel JavaScript API 实现违规行高亮方案

实现逻辑

  • 首先选定要校验的两列数据范围,示例默认校验当前工作表A、B两列的已用数据区域,可自行修改列参数
  • 逐行读取两列的单元格值,判断规则:如果A列值不为空且不为0,同时B列值也不为空且不为0,则判定为违规行
  • 对所有违规行统一设置背景填充色,示例用浅红色,可自行修改色值

完整代码

async function highlightInvalidRows() {
  await Excel.run(async (context) => {
    // 获取当前活动工作表
    const sheet = context.workbook.worksheets.getActiveWorksheet();
    // 读取工作表已使用数据范围
    const usedRange = sheet.getUsedRange();
    // 加载范围的数值、行数属性
    usedRange.load("values, rowCount");
    
    await context.sync();
    
    // 存储所有违规行的范围对象
    const invalidRanges = [];
    const values = usedRange.values;
    
    for (let i = 0; i < usedRange.rowCount; i++) {
      // 取当前行的第一列、第二列值,校验其他列可自行调整索引
      const col1Val = values[i][0];
      const col2Val = values[i][1];
      
      // 校验规则:两列同时不为空且不为0则判定为违规
      const col1Valid = col1Val === null || col1Val === "" || col1Val === 0;
      const col2Valid = col2Val === null || col2Val === "" || col2Val === 0;
      if (!col1Valid && !col2Valid) {
        // 将当前违规行的两列范围加入待高亮列表
        invalidRanges.push(usedRange.getRow(i).getResizedRange(0, 1));
      }
    }

    if (invalidRanges.length > 0) {
      // 合并所有违规范围,统一设置浅红色背景
      const combinedRange = sheet.joinRanges(invalidRanges);
      combinedRange.format.fill.color = "#ffcccc";
    }

    await context.sync();
  });
}

参数调整说明

  • 若需要校验的不是前两列,可自行修改values[i][0]、values[i][1]的索引值,例如校验C、D列就改为values[i][2]、values[i][3]
  • 高亮颜色可修改combinedRange.format.fill.color的色值,替换为你需要的颜色即可

预期效果参考图

预期实现效果参考图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:24:01