zoukankan      html  css  js  c++  java
  • NPOI读取自定义的颜色

    有些自定义的颜色,npoi无法读取,需要手动写方案实现,分别是在打开wrokbook的时候,加上你自定义的颜色,然后在读取excel内容的时候通过一些特征判断是否是自定义的颜色,改变其index的值,具体方案如下:

    如果是07版的是:

     IWorkbook npoiWorkbook = null;

     XSSFWorkbook xSSFWorkbook = new XSSFWorkbook(fs);
     int uindex = xSSFWorkbook.NumCellStyles;
     XSSFCellStyle style = (XSSFCellStyle)xSSFWorkbook.CreateCellStyle();
     style.FillForegroundColor = (short)(uindex);
    style.FillPattern = FillPattern.SolidForeground;
     XSSFColor xssfColor = new XSSFColor();
    xssfColor.SetRgb(new byte[] { 191, 191, 191 });
    style.SetFillForegroundColor(xssfColor);
    npoiWorkbook = (IWorkbook)xSSFWorkbook;

    如果是03版的是:

    HSSFWorkbook hssfWorkbook = new HSSFWorkbook(fs); 

     HSSFPalette palette = hssfWorkbook.GetCustomPalette(); 
     palette.SetColorAtIndex((short)8, (byte)191, (byte)191, (byte)191);

     HSSFCellStyle style = (HSSFCellStyle)hssfWorkbook.CreateCellStyle();
     style.FillForegroundColor = (short)(8);
     style.FillPattern = FillPattern.SolidForeground;

    npoiWorkbook = (IWorkbook)hssfWorkbook;

    如上两段是打开wrokbook时候的处理,读取的处理如下:

    如果是07版本:

     if (cell.CellStyle.FillForegroundColor == 0 && cell.CellStyle.Index != workbook.NumCellStyles - 2)
      {
                    cell.CellStyle.FillForegroundColor = (short)(workbook.NumCellStyles - 1);
      }

    但是07比较坑,不知道是不是我没发现还是咋地,FillForegroundColor设置完了没有改变其实际的rgb的值,需要另外处理一下才行(具体根据单元格的index存下来,让我们知道这个单元格是我们自定义的颜色),但是03的版本修改完FillForegroundColor这个值,rgb就直接变成了8号位对应的颜色

    如果是03的版本:

    if (cell.CellStyle.FillForegroundColor == 55)
      {
                       cell.CellStyle.FillForegroundColor = (short)(8);
       }

    过多的还没有探讨,有感兴趣的,留言一起探讨探讨
    ————————————————
    版权声明:本文为CSDN博主「雪落花开_chanel」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/chanelwtt/article/details/105099584

  • 相关阅读:
    node.js---sails项目开发(3)
    node.js---sails项目开发(2)
    基于 phantomjs 的自动化测试---(1)
    node.js---sails项目开发(1)
    mongoose基于mongodb的数据评论设计
    js复杂数据格式提交
    [LeetCode]Rotate Image
    [LeetCode]Minimum Path Sum
    [LeetCode]Generate Parentheses
    [LeetCode]Gray Code
  • 原文地址:https://www.cnblogs.com/zhuangjolon/p/12582394.html
Copyright © 2011-2022 走看看