文章目录
- 前言
- 遍历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();
}
}
效果图: