怎么查看网站的ftp,建站素材网,zoho企业邮箱,wordpress 杂志主题NPOI针对office2003使用HSSFWorkbook#xff0c;对于offce2007及以上使用XSSFWorkbook#xff1b;今天我以HSSFWorkbook自定义颜色为例说明#xff0c;Office2007的未研究呢
在NPOI中默认的颜色类是HSSFColor#xff0c;它内置的颜色有几十种供我们选择#xff0c;如果不…NPOI针对office2003使用HSSFWorkbook对于offce2007及以上使用XSSFWorkbook今天我以HSSFWorkbook自定义颜色为例说明Office2007的未研究呢
在NPOI中默认的颜色类是HSSFColor它内置的颜色有几十种供我们选择如果不够怎么办不能修改底层的HSSFColor类
大概解决思路
1、将颜色的RGB值添加进调色板HSSFPalette中
2、调用HSSFPalette中FindColor方法获取HSSFColor实例
3、在需要使用颜色的地方使用HSSFColor的Indexed属性获取index值NPOI.dll版本不同也可能是GetIndex方法节能Index值
第一步将颜色的RGB值添加进调色板HSSFPalette
HSSFWorkbook hssfWorkbook new HSSFWorkbook();//工作簿实例
HSSFPalette palette hssfWorkbook.GetCustomPalette(); //调色板实例
palette.SetColorAtIndex((short)8 ,(short)184,(short)204,(short)228);
参数解析
第一个参数设置调色板新增颜色的编号自已设置即可取值范围8-64
第二、第三、第四个参数组成RGB值
这里还有一点需要注意如何去找到相应的RGB值呢如果去用肉眼去找到匹配的太难
可以下载调色板来拾取也可以通过Excel固定模板去取本次我讲解通过Excel去取颜色
客户可能给某个模板模板中自带背景色我们如何找到这个前景色的RGB值呢通过以下方式 第二步调用HSSFPalette中FindColor方法获取HSSFColor实例
HSSFColor hssFColor palette.FindColor((short)184,(short)204,(short)228);
第一步中自定义设置的RGB值直接复制过来使用通过FindColor直接找到HSSFColor实例
第三步设置具体对象颜色 //创建一个单元格(具体网上查查本次不做重点讲解)
ISheet sheet hssfWorkbook.GetSheetAt(0);
IRow row sheet.CreateRow(0);
ICell cell row.CreateCell(0);
//设置单元格颜色 ICellStyle cellStyle hssfWorkbook.CreateCellStyle();
cellStyle.FillPattern FillPattern.SolidForeground; 老版本可能这样写FillPatternType.SOLID_FOREGROUND;
cellStyle.FillForegroundColor hssFColor.Indexed;
cell.CellStyle cellStyle;//设置