介绍NPOI 的颜色卡、名称以及索引

文章提供了NPOI库中预定义颜色的索引和对应的色彩名称,帮助用户理解和使用这些颜色。代码示例展示了如何遍历和设置自定义颜色到NPOI工作簿的调色板中,并生成Excel文件显示颜色及其对应的索引和十六进制值。
摘要由CSDN通过智能技术生成

文章目录

前言

使用NPOI的颜色时,一些颜色类的名称很难想象出具体对应的颜色,所以有了下面的对照表,方便使用。

NPOI 颜色的索引范围是 8~64,超出范围无效。

色彩类名索引Index名称
#000000HSSFColor.Black8黑色
#ffffffHSSFColor.White9白色
#ff0000HSSFColor.Red10红色
#00ff00HSSFColor.BrightGreen11亮绿色
#0000ffHSSFColor.Blue12蓝色
#FFFF00HSSFColor.Yellow13黄色
#FF00FFHSSFColor.Pink14粉色
#00FFFFHSSFColor.Turquoise15青绿色 宝石蓝
#800000HSSFColor.DarkRed16暗红色 酒红
#008000HSSFColor.Green17绿色
#000080HSSFColor.DarkBlue18深蓝色
#808000HSSFColor.DarkYellow19深黄色
#800080HSSFColor.Violet20紫罗兰色
#008080HSSFColor.Teal21蓝绿色 青色
#C0C0C0HSSFColor.Grey25Percent2225%灰色
#808080HSSFColor.Grey50Percent2350%灰色
#9999FFHSSFColor.CornflowerBlue24浅蓝色
#993366HSSFColor.Maroon25褐红色 栗色 茶色
#FFFFCCHSSFColor.LemonChiffon26柠檬绯色
#CCFFFFHSSFColor.LightTurquoise27浅翠蓝 浅绿蓝
#660066HSSFColor.Orchid28淡紫色 兰花紫
#FF8080HSSFColor.Coral29珊瑚色
#0066CCHSSFColor.RoyalBlue30宝蓝色;品蓝
#CCCCFFHSSFColor.LightCornflowerBlue31浅矢车菊蓝色
#000080HSSFColor.DarkBlue32深蓝色
#FF00FFHSSFColor.Pink33粉红色
#FFFF00HSSFColor.Yellow34黄色
#00FFFFFHSSFColor.Turquoise35宝石绿
#800080HSSFColor.Violet36紫罗兰色
#800000HSSFColor.DarkRed37深红色
#008080HSSFColor.Teal38蓝绿色 青色
#0000ffHSSFColor.Blue39蓝色
#00ccffHSSFColor.SkyBlue40天蓝色
#ccffffHSSFColor.LightTurquoise41浅翠蓝
#ccffccHSSFColor.LightGreen42浅绿色
#ffff99HSSFColor.LightYellow43浅黄色
#99ccffHSSFColor.PaleBlue444淡蓝色
#ff99ccHSSFColor.Rose45玫瑰粉色
#cc99ffHSSFColor.Lavender46薰衣草色
#ffcc99HSSFColor.Tan47棕褐色 黄褐色
#3366ffHSSFColor.LightBlue48浅蓝色
#33ccccHSSFColor.Aqua49水绿色
#99cc00HSSFColor.Lime50亮绿色
#ffcc00HSSFColor.Gold51金色
#ff9900HSSFColor.LightOrange52浅橙色
#ff6600HSSFColor.Orange53橙色
#666699HSSFColor.BlueGrey54蓝灰色
#969696HSSFColor.Grey40Percent5540%灰色
#003366HSSFColor.DarkTeal56深蓝绿
#339966HSSFColor.SeaGreen57海洋绿
#003300HSSFColor.DarkGreen58深绿色 墨绿色
#333300HSSFColor.OliveGreen59橄榄绿
#993300HSSFColor.Brown60棕色
#993366HSSFColor.Plum61梅红色
#333399HSSFColor.Indigo62靛蓝色;靛青色
#333333HSSFColor.Grey80Percent6380%灰色
#000000HSSFColor.Automatic64黑色

遍历NPOI颜色

使用调色板HSSFPalette 检验自动生成的颜色是否在NPOI中有定义。

void ExcelColor()
        {
            //创建工作簿对象
            HSSFWorkbook workBook = new HSSFWorkbook();

            //创建一个sheet
            ISheet sheet = workBook.CreateSheet("ColorTable");

            IRow row ;
            ICell cell;

            //调色板
            HSSFPalette palette = workBook.GetCustomPalette();
            List<Color> colorList = new List<Color>();

            Random random = new Random(Guid.NewGuid().GetHashCode());
            for(int i=0; i<random.Next(100,200); i++)
            {
                colorList.Add(Color.FromArgb(
                    random.Next(0, 255),
                    random.Next(0, 255),
                    random.Next(0, 255)));
            }

            short FIRST_COLOR_INDEX = (short)0x8;

            for (int i = 0; i < colorList.Count; i++)
            {
                if ((short)(FIRST_COLOR_INDEX + i) > (short)0x40)
                {
                    break;
                }
                //index的取值范围0x8-0x40
                palette.SetColorAtIndex((short)(FIRST_COLOR_INDEX + i),
                    colorList[i].R, colorList[i].G, colorList[i].B);
            }

            int StartColIndex = 0;
            int rowIndex = 0;
            int colIndex = StartColIndex;

            for (int i = 0; i < colorList.Count; i++)
            {
                if (i > (short)(0x40 - 0x8))
                {
                    break;
                }


                var vl = palette.FindColor(colorList[i].R, colorList[i].G, colorList[i].B);
                if (vl == null)
                {
                    // throw new Exception("Color is Valid");
                    continue;
                }

                row = sheet.CreateRow(rowIndex);
                cell = row.CreateCell(0);

                ICellStyle cellStyle = workBook.CreateCellStyle();
                cellStyle.FillPattern = FillPattern.SolidForeground;

                cellStyle.FillForegroundColor = vl.GetIndex();
                cell.CellStyle = cellStyle;

             
                cell = row.CreateCell(1);
                cell.SetCellValue(vl.GetHexString());

                cell = row.CreateCell(2);
                cell.SetCellValue(vl.GetIndex());
                rowIndex++;
                    
                    }

            string fileName = @"testColor.xls";

            using (FileStream file = new FileStream(fileName, FileMode.Create))
            {
                workBook.Write(file);
                file.Close();
            }
        }

效果图:
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值