当前位置: 首页 > news >正文

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

相关文章:

  • Android Studio Flavors的妙用(转)
  • linux下怎么卸载自带的JDK和安装想要的JDK
  • 1、win10下的Docker+Redis 的下载及简单使用
  • 单例设计模式
  • PHP多进程系列笔记(三)
  • Netty基础
  • 探讨.NET Core的未来
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • Mantis 1.3.13报表显示问题
  • SQL Server 与 DSN
  • 关于怎么在手机端实现一个拖拽的操作
  • 每日笔记之2018-06-26之小总结
  • emoji web端处理
  • libvirt-qemu-虚拟机设备热插拔
  • 【刷算法】从上往下打印二叉树
  • [PHP内核探索]PHP中的哈希表
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Apache的80端口被占用以及访问时报错403
  • CSS 三角实现
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • PaddlePaddle-GitHub的正确打开姿势
  • React中的“虫洞”——Context
  • Redis 懒删除(lazy free)简史
  • socket.io+express实现聊天室的思考(三)
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • zookeeper系列(七)实战分布式命名服务
  • 从0实现一个tiny react(三)生命周期
  • 聊一聊前端的监控
  • 免费小说阅读小程序
  • 前端js -- this指向总结。
  • 入门到放弃node系列之Hello Word篇
  • 详解NodeJs流之一
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 《码出高效》学习笔记与书中错误记录
  • 函数计算新功能-----支持C#函数
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​ArcGIS Pro 如何批量删除字段
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #pragma multi_compile #pragma shader_feature
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (一)Dubbo快速入门、介绍、使用
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .net core 6 集成 elasticsearch 并 使用分词器