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

2016-12-27 10:44 by 杨新华, 5242 阅读, 0 评论, 收藏编辑

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;//设置

原文地址:https://www.cnblogs.com/micro-chen/p/9186491.html

时间: 2024-11-08 23:44:28

NPOI 自定义单元格背景颜色-Excel的相关文章

NPOI Excel 单元格背景颜色对照表

NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillPattern 为单元格背景色的填充样式. NPOI Excel 单元格背景颜色设置方法以及颜色对照表: 1 2 3 4 5 6 ICellStyle style = workbook.CreateCellStyle(); style.FillForegroundColor = NPOI.HSSF.U

ExtJS4.2 Grid知识点三:改变表格Grid单元格背景颜色

在ExtJS4.2 Grid知识点一:改变表格Grid单元格文字颜色一文中讲解了如何改变单元格中文字颜色,接下来在本章学习如何改变Grid中单元格的背景颜色,显示结果如图片: 在线演示  /  示例代码 实现方式同样是为Grid中该列自定义renderer函数,查询ExtJS 4.2 API得知,Ext.grid.column.Column的renderer属性可以是一个函数也可以是字符串,这个知识点是通过函数来实现的.函数参数列表如下: value : 当前待渲染的单元格值,即表格中某行某列的

EXTJS根据值Value改变gridpanel单元格背景颜色或者设置整行字体颜色

第一步. 设置样式 .reportColor4{background: #93A9C1;}.reportColor5{background: #EEEEEE;} 第二步.修改单元格样式 header : '流通类型',width : 80,sortable : true,align : 'center',dataIndex: 'BR_TYPE',// css : 'background: #acdaf4;', // ----- 设置整个单元格的样式,但是不能根据条件变化renderer:func

easyui 改变单元格背景颜色

另外一种方法:https://www.cnblogs.com/raitorei/p/9989649.html 代码: jsp: <table id="roleList"> <thead> <tr> <th data-options="field:'ck',checkbox:true"></th> <th data-options="field:'monitor_item_code',widt

C#对gridView的列和行以及单元格进行颜色设置

①字体 其中gridView是gridView的Name(下同) gridView[column, row].Style.ForeColor = Color.Red;//设置第row行column列的单元格字体颜色 gridView.Rows[row].DefaultCellStyle.ForeColor = Color.Red;//设置第row行的行字体颜色gridView.Columns[column].DefaultCellStyle.ForeColor = Color.Yellow;//

怎样将Excel包含某字符的单元格填充颜色

在处理数据的时候,xmyanke想将Excel中包含某字符的单元格填充蓝色,比较容易看清,弄了好一阵子都没完成,最后试用条件格式处理了一下,终于实现了. 比如要将A1到A12区间包含数字1的单元格填充成蓝色,点击A1按shift键再点击A12选中A1:A12区间所有单元格,在菜单栏中选“格式”-“条件格式” 在弹出的条件格式对话框中选“单元格数值”“等于”“1”,点击“格式”按钮,弹出的单元格格式对话框中的“图案”选项,选择蓝色单元格底色,确定 这样设置以后,Excel包含某字符的单元格填充颜色

浅谈DevExpress&lt;五&gt;:TreeList简单的美化——自定义单元格,加注释以及行序号

今天就以昨天的列表为例,实现以下效果:预算大于110万的单元格突出显示,加上行序号以及注释,如下图: 添加行序号要用到CustomDrawNodeIndicator方法,要注意的是,取得的节点索引是从0开始的,所以要+1以便第一行从一开始算起. private void treeList1_CustomDrawNodeIndicator(object sender, CustomDrawNodeIndicatorEventArgs e) { TreeList tree = sender as D

通过自定义单元格渲染器在Jtable中显示超链接

转载:http://www.tuicool.com/articles/qE7FNv 在JTable中自定义单元格渲染器是非常简单和容易的.对于单元格渲染器来说,它的主要任务就是为目标单元格返回一个Component对象,以呈现其内容.说到Component,就应该豁然开朗了,因为在Swing中,所有可在屏幕上显示的图形控件都是Component的直接或间接子类,也就是说,理论上你可以在JTable单元格中显示任意图形控件! 当然,实际上有一些控件是不能在单元格中显示的,比如JFrame这样的独立

Swift - 自定义单元格实现微信聊天界面

1,下面是一个放微信聊天界面的消息展示列表,实现的功能有: (1)消息可以是文本消息也可以是图片消息 (2)消息背景为气泡状图片,同时消息气泡可根据内容自适应大小 (3)每条消息旁边有头像,在左边表示发送方,在右边表示接收方 2,实现思路 (1)需要定义一个数据结构保存消息内容 MessageItem (2)继承UITableViewCell实现自定义单元格,这里面放入头像和消息体 (3)继承UITableView实现自定义表格,通过读取数据源,进行页面的渲染 (4)消息体根据内容类型不同,用不