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

文章目录

      • 前言
    • 遍历NPOI颜色

前言

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

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

色彩 类名 索引Index 名称
#000000 HSSFColor.Black 8 黑色
#ffffff HSSFColor.White 9 白色
#ff0000 HSSFColor.Red 10 红色
#00ff00 HSSFColor.BrightGreen 11 亮绿色
#0000ff HSSFColor.Blue 12 蓝色
#FFFF00 HSSFColor.Yellow 13 黄色
#FF00FF HSSFColor.Pink 14 粉色
#00FFFF HSSFColor.Turquoise 15 青绿色 宝石蓝
#800000 HSSFColor.DarkRed 16 暗红色 酒红
#008000 HSSFColor.Green 17 绿色
#000080 HSSFColor.DarkBlue 18 深蓝色
#808000 HSSFColor.DarkYellow 19 深黄色
#800080 HSSFColor.Violet 20 紫罗兰色
#008080 HSSFColor.Teal 21 蓝绿色 青色
#C0C0C0 HSSFColor.Grey25Percent 22 25%灰色
#808080 HSSFColor.Grey50Percent 23 50%灰色
#9999FF HSSFColor.CornflowerBlue 24 浅蓝色
#993366 HSSFColor.Maroon 25 褐红色 栗色 茶色
#FFFFCC HSSFColor.LemonChiffon 26 柠檬绯色
#CCFFFF HSSFColor.LightTurquoise 27 浅翠蓝 浅绿蓝
#660066 HSSFColor.Orchid 28 淡紫色 兰花紫
#FF8080 HSSFColor.Coral 29 珊瑚色
#0066CC HSSFColor.RoyalBlue 30 宝蓝色;品蓝
#CCCCFF HSSFColor.LightCornflowerBlue 31 浅矢车菊蓝色
#000080 HSSFColor.DarkBlue 32 深蓝色
#FF00FF HSSFColor.Pink 33 粉红色
#FFFF00 HSSFColor.Yellow 34 黄色
#00FFFFF HSSFColor.Turquoise 35 宝石绿
#800080 HSSFColor.Violet 36 紫罗兰色
#800000 HSSFColor.DarkRed 37 深红色
#008080 HSSFColor.Teal 38 蓝绿色 青色
#0000ff HSSFColor.Blue 39 蓝色
#00ccff HSSFColor.SkyBlue 40 天蓝色
#ccffff HSSFColor.LightTurquoise 41 浅翠蓝
#ccffcc HSSFColor.LightGreen 42 浅绿色
#ffff99 HSSFColor.LightYellow 43 浅黄色
#99ccff HSSFColor.PaleBlue 444 淡蓝色
#ff99cc HSSFColor.Rose 45 玫瑰粉色
#cc99ff HSSFColor.Lavender 46 薰衣草色
#ffcc99 HSSFColor.Tan 47 棕褐色 黄褐色
#3366ff HSSFColor.LightBlue 48 浅蓝色
#33cccc HSSFColor.Aqua 49 水绿色
#99cc00 HSSFColor.Lime 50 亮绿色
#ffcc00 HSSFColor.Gold 51 金色
#ff9900 HSSFColor.LightOrange 52 浅橙色
#ff6600 HSSFColor.Orange 53 橙色
#666699 HSSFColor.BlueGrey 54 蓝灰色
#969696 HSSFColor.Grey40Percent 55 40%灰色
#003366 HSSFColor.DarkTeal 56 深蓝绿
#339966 HSSFColor.SeaGreen 57 海洋绿
#003300 HSSFColor.DarkGreen 58 深绿色 墨绿色
#333300 HSSFColor.OliveGreen 59 橄榄绿
#993300 HSSFColor.Brown 60 棕色
#993366 HSSFColor.Plum 61 梅红色
#333399 HSSFColor.Indigo 62 靛蓝色;靛青色
#333333 HSSFColor.Grey80Percent 63 80%灰色
#000000 HSSFColor.Automatic 64 黑色

遍历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();
            }
        }

效果图:
介绍NPOI 的颜色卡、名称以及索引_第1张图片

你可能感兴趣的:(Excel,NPOI,C#,windform,颜色)