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

