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

如何使用Node.js和xlsx库为Excel设置条件格式实现单元格高亮

实现方案

你当前使用的xlsx库为SheetJS社区开源版本,该版本不支持条件格式导出能力,要实现C列的三色区间颜色规则,推荐换成支持条件格式的exceljs库实现,步骤如下:

1. 安装依赖

npm install exceljs

2. 完整代码实现

const ExcelJS = require('exceljs');
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('Book1');

// 写入SQL查询得到的excelJSON数据,和原有逻辑对齐
worksheet.columns = Object.keys(excelJSON[0]).map(key => ({
  header: key,
  key: key
}));
worksheet.addRows(excelJSON);

// 配置C列条件格式,ref参数写C:C代表作用于整列
worksheet.addConditionalFormatting({
  ref: 'C:C',
  rules: [
    // 0-10区间显示绿色
    {
      type: 'cellIs',
      operator: 'between',
      formulae: [0, 10],
      style: {
        fill: {
          type: 'pattern',
          pattern: 'solid',
          fgColor: { argb: 'FF00B050' }
        }
      }
    },
    // 11-50区间显示红色
    {
      type: 'cellIs',
      operator: 'between',
      formulae: [11, 50],
      style: {
        fill: {
          type: 'pattern',
          pattern: 'solid',
          fgColor: { argb: 'FFFF0000' }
        }
      }
    },
    // 其余数值显示黄色
    {
      type: 'cellIs',
      operator: 'notBetween',
      formulae: [0, 50],
      style: {
        fill: {
          type: 'pattern',
          pattern: 'solid',
          fgColor: { argb: 'FFFFFF00' }
        }
      }
    }
  ]
});

// 导出为本地Excel文件
workbook.xlsx.writeFile('output.xlsx')
  .then(() => console.log('Excel文件生成完成'))
  .catch(err => console.error('文件生成失败:', err));

补充说明

如果你已经基于原有xlsx库完成了所有数据写入逻辑,不想重构代码,可以先用xlsx生成文件Buffer,再用exceljs读取该Buffer,仅追加条件格式配置后再导出即可,不需要重新处理数据写入逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:00:00