每次用到这个都要去百度,这里记录一下,xls和xlsx两种格式设置背景颜色的区别,这里省略了前面读取模板或者创建excel的过程:
xls:
1 2 3 4 5 6 7 8 9 10 11 |
ICellStyle style = workbook.CreateCellStyle(); //使用NPOI已经有的颜色创建 style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Yellow.Index; style.FillPattern = FillPattern.SolidForeground; //没有的颜色,使用RGB值进行创建 //这里要自定义一个颜色板覆盖掉原来的index,这里覆盖48号位置上的 HSSFPalette palette = ((HSSFWorkbook)workbook).GetCustomPalette(); palette.SetColorAtIndex(48, 0, 112, 192); style.FillForegroundColor = palette.FindColor(0, 112, 192).Indexed; |
xlsx:
1 2 3 4 5 6 7 8 9 10 |
ICellStyle style = workbook.CreateCellStyle(); //使用NPOI已经有的颜色创建(这里跟xls一样,不知道为什么可以通用) style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Yellow.Index; style.FillPattern = FillPattern.SolidForeground; //使用没有的颜色,这里和xls不一样,不需要覆盖掉原来的色板 style.FillForegroundColor = 0; style.FillPattern = FillPattern.SolidForeground; ((XSSFColor)style.FillForegroundColorColor).SetRgb(new byte[] { 0, 176, 240 }); |
from:https://blog.csdn.net/qq_34452824/article/details/119379559