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

使用NPOI设置单元格RGB背景色显示为黑色的问题排查

问题原因

你代码导致单元格背景变黑的核心问题是错误使用了自定义XSSFColor的Index属性给样式填充色赋值:

  • 手动通过RGB值实例化的自定义XSSFColor不在工作簿默认索引调色板范围内,此时它的Index属性会返回默认值0,而调色板中索引0对应的颜色就是纯黑色。
  • FillForegroundColor属性仅支持传入调色板内置的索引色值,自定义RGB颜色无法通过该属性正确生效。
  • 你代码中FillPattern = FillPattern.SolidForeground的写法是正确的,不需要修改。
修正方案

移除原来给FillForegroundColor赋值backColor.Index的代码,直接将你创建的自定义颜色实例赋值给样式的FillForegroundColorColor属性即可,修正后的核心代码如下:

ICellStyle style = wb.CreateCellStyle();
var font = (XSSFFont)GetGroupFont(wb);
style.SetFont(font);

var backColor = new XSSFColor(new byte[] { 198, 224, 180 });
// 自定义RGB颜色直接赋值给FillForegroundColorColor属性,不需要取Index
style.FillForegroundColorColor = backColor;
style.FillPattern = FillPattern.SolidForeground;
style.Alignment = HorizontalAlignment.Left;
style.VerticalAlignment = VerticalAlignment.Center;

ICell cellGroup = row.CreateCell(0);
cellGroup.CellStyle = style;
cellGroup.SetCellValue(value);

补充说明:如果你操作的是.xls格式的HSSFWorkbook,自定义颜色需要先加入工作簿调色板再取索引赋值;但你当前代码使用的是XSSF体系(对应.xlsx格式),直接给FillForegroundColorColor赋值颜色实例即可正常显示你需要的浅绿色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:18:16