• 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

  • 相关阅读:
    【转】正确设置php-fpm子进程用户,提高网站安全性防挂马
    Linux修改SSH端口,并禁止Root远程登陆
    [转]PHP5 session 详解
    【转】PHP调试开发工具你认识多少?
    [转]浅谈php web安全
    【笔记】InnoDB内存分配
    【转】推荐介绍几款小巧的Web Server程序
    【转】定时自动启动任务crontab命令用法
    Tornado笔记
    Python笔记:open函数和with临时运行环境(文件操作)
  • 原文地址:https://www.cnblogs.com/zhuangjolon/p/12582394.html
Copyright © 2020-2023  润新知