如何使用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
相关产品推荐
相关产品推荐

