zoukankan      html  css  js  c++  java
  • 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;//设置

  • 相关阅读:
    1725最少硬币问题(DP)
    3358高数Umaru系列(9)——哈士奇(DP)
    1018骨牌铺方格(分治算法)
    3664顺序表应用7:最大子段和之分治递归法(分治算法)
    1722整数因子分解问题(分治算法)
    剑指offer JZ-11
    剑指offer JZ-10
    剑指offer JZ-9
    剑指offer JZ-8
    剑指offer JZ-7
  • 原文地址:https://www.cnblogs.com/micro-chen/p/9186491.html
Copyright © 2011-2022 走看看