NPOI 自定义单元格背景颜色-Excel

摘要:
NPOI使用HSSF Workbook for office 2003和HSSFWorkbook for office 2007及以上版本;今天,我将以HSSFWorkbook自定义颜色为例,说明NPOI中的默认颜色类是HSSFColor,Office2007中没有对此进行研究。有几十种内置颜色供我们选择。如果还不够,我们就不能修改基础的HSSFColor类;一般解决方案:1.将颜色的RGB值添加到HSSFPalette调色板

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值呢,通过以下方式

NPOI 自定义单元格背景颜色-Excel第1张

NPOI 自定义单元格背景颜色-Excel第2张

第二步:调用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;//设置

免责声明:文章转载自《NPOI 自定义单元格背景颜色-Excel》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇js --- execCommand('copy')复制文本到剪切板换行符不生效POI隐藏行 隐藏列,EasyExcel隐藏行 EasyExcel隐藏列下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#操作Excel时,Excel常用的方法和属性zz

生成excel的时候有时候需要设置单元格的一些属性,可以参考一下:range.NumberFormatLocal="@";//设置单元格格式为文本 range=(Range)worksheet.get_Range("A1","E1");//获取Excel多个单元格区域:本例做为Excel表头 range.Merge(0);//单元格合并动作 works...

java生成Excel(JXL类库)

jxl是java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的, 并不 依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。 另外需要说明的是,这套API对图形和图表的支...

VBA在Excel中的应用(四)

目录 Column ComboBox Copy Paste CountA Evaluate Excel to XML Excel ADO Excel to Text File Excel Toolbar Column 1. 选择整列 Sub SelectEntireColumn()    Selection.EntireColumn.SelectEn...

QT QTableWidget 用法总结(转)

QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTabl...

Bootstrap Table 中文文档(完整翻译版)

表格参数: 名称 标签 类型 默认 描述 - data-toggle String ‘table’ 不用写 JavaScript 直接启用表格。 classes data-classes String ‘table table-hover’ 表格的类名称。默认情况下,表格是有边框的 你可以添加 ‘table-no-bordered’ 来删除...

WPF如何获得ListView内各单元格控件

------------------首先不推荐这种模式ItemsSource 已经绑定了源. Items 集合的数量变化很随机, 每个单元格的控件取决於  默认的DataTemplate(设置 DisplayMemberBinding 时) 或者  CellTemplate 定义的控件, 或者  CellTemplateSelector 指定的 Templ...