精华内容
下载资源
问答
  • POI EXCEL导出 引用自定义RGB颜色
    2020-08-10 14:04:12

    由于公司业务需求需要选择颜色为RGB(30,41,65),这是POI默认提供的颜色已经不足以支持我们的需求了。
    这个时候POI提供了HSSFPalette这个类
    HSSFPalette palette = wb.getCustomPalette();
    //具体的就是把之前的颜色 HSSFColor.LIME.index
    //替换为可以改为 RGB(30,41,65)
    palette.setColorAtIndex(HSSFColor.LIME.index, (byte) 30, (byte) 41, (byte) 65);
    意思就是:将原有的HSSFColor.LIME.index替换成自定义颜色RGB(30,41,65)。

    更多相关内容
  • 颜色HSSFColor

    千次阅读 2017-05-29 03:26:42
    1.HSSFColor/** ...每个颜色都有一个索引(对于Excel(tm)中的标准调色板HSSFPalette),本地(RGB)三元组和字符串三元组。 字符串三元组的颜色将由Gnumeric表示。 * 这有字符串三元组,是HSSF和

    1.HSSFColor

    /**
     * 1.旨在为三元组非常恶劣的索引问题提供支持,并可能会用枚举替代HSSF 2.0的色彩常数接口。
     * 2.此类包含用于表示颜色的静态内部类成员。
     * 3.每个颜色都有一个索引(对于Excel(tm)中的标准调色板HSSFPalette),本地(RGB)三元组和字符串三元组。 字符串三元组的颜色将由Gnumeric表示。
     *   这有字符串三元组,是HSSF和HSSFSerializer之间的一个功能的冲突,但我认为这是合理的。
     *
     * 4.本类根据给定的颜色的调色板索引(和可选的第二个索引),预定义了一些颜色HSSFColors
     * @since POI 3.16 beta 2
     */
    public class HSSFColor implements Color {
        private static Map<Integer,HSSFColor> indexHash;
    	// 记录预定义的颜色
        private static Map<HSSFColorPredefined,HSSFColor> enumList;
    
    	// 颜色
        private java.awt.Color color;
    	// 颜色的调色板索引
        private int index;
    	// 颜色的可选第二索引
        private int index2;
    
        /**
         * 用枚举预定义的一些颜色,替代之前用静态内部类预定义的颜色
         */
        public enum HSSFColorPredefined {
    	.....
    	}
    	
    	/*
    	 * 创建一个默认的新的HSSFColor实例
    	 * 默认颜色:黑色
    	 * 黑色在调色板中索引:0x40, 可选第二索引为:-1
    	 */
        public HSSFColor() {
            // automatic index
            this(0x40, -1, java.awt.Color.BLACK);
        }
    
    	/**
    	 * 创建一个新的HSSFColor实例
    	 * @param index 颜色在调色板中索引
    	 * @param index2 可选第二索引
    	 * @param color java中颜色实例对象
    	 */
        public HSSFColor(int index, int index2, java.awt.Color color) {
            this.index = index;
            this.index2 = index2;
            this.color = color;
        }
    	
        /**
         * 返回颜色在标准调色面板中的索引值
         */
        public short getIndex() {
            return (short)index;
        }
    
        /**
         * 返回颜色在标准调色面板中的替代索引(即第二索引),返回-1表示没有定义第二索引
         */
        public short getIndex2() {
            return (short)index2;
        }
    
        /**
         * 返回颜色的三元组形式,即RGB格式(0, 0, 0)
         */
        public short [] getTriplet() {
            return new short[] { (short)color.getRed(), (short)color.getGreen(), (short)color.getBlue() };
        }
    
        /**
         * 返回冒号分隔的十六进制字符串:"0x255:0x255:0x255", 像一个gnumeric三元组
         */
        public String getHexString() {
            return (Integer.toHexString(color.getRed()*0x101) + ":" +
                   Integer.toHexString(color.getGreen()*0x101) + ":" +
                   Integer.toHexString(color.getBlue()*0x101)).toUpperCase(Locale.ROOT);
        }
    
        /**
         * 将Color类型转换为HSSFColor类型
         * @throws IllegalArgumentException如果颜色为空或不是HSSFColor的实例
         */
        public static HSSFColor toHSSFColor(Color color) {
    		/**
    		 * 如果可以将任何Color转换为HSSFColor,此方法将会更有用
             * 这个方法目前唯一的好处就是抛出一个IllegalArgumentException
             * 而不是ClassCastException。
    		 */
            if (color != null && !(color instanceof HSSFColor)) {
                throw new IllegalArgumentException("Only HSSFColor objects are supported");
            }
            return (HSSFColor)color;
        }
    }

    2.枚举类:预定义的颜色

        /**
         * 枚举预定义一些颜色
         * 并在枚举中添加一些自定义方法
         *
         * @since POI 3.16 beta 2
         */
        public enum HSSFColorPredefined {
           /*
    	    * 利用构造函数传参 :索引值index, 第二索引,颜色的RGB值
            * 通过括号赋值,而且必须有带参构造器和属性和方法,否则编译出错  
            * 赋值必须是都赋值或都不赋值,不能一部分赋值一部分不赋值  
            * 如果不赋值则不能写构造器,赋值编译也出错 
            * */  
            BLACK                (0x08,   -1, 0x000000),
            BROWN                (0x3C,   -1, 0x993300),
            OLIVE_GREEN          (0x3B,   -1, 0x333300),
            DARK_GREEN           (0x3A,   -1, 0x003300),
            DARK_TEAL            (0x38,   -1, 0x003366),
            DARK_BLUE            (0x12, 0x20, 0x000080),
            INDIGO               (0x3E,   -1, 0x333399),
            GREY_80_PERCENT      (0x3F,   -1, 0x333333),
            ORANGE               (0x35,   -1, 0xFF6600),
            DARK_YELLOW          (0x13,   -1, 0x808000),
            GREEN                (0x11,   -1, 0x008000),
            TEAL                 (0x15, 0x26, 0x008080),
            BLUE                 (0x0C, 0x27, 0x0000FF),
            BLUE_GREY            (0x36,   -1, 0x666699),
            GREY_50_PERCENT      (0x17,   -1, 0x808080),
            RED                  (0x0A,   -1, 0xFF0000),
            LIGHT_ORANGE         (0x34,   -1, 0xFF9900),
            LIME                 (0x32,   -1, 0x99CC00),
            SEA_GREEN            (0x39,   -1, 0x339966),
            AQUA                 (0x31,   -1, 0x33CCCC),
            LIGHT_BLUE           (0x30,   -1, 0x3366FF),
            VIOLET               (0x14, 0x24, 0x800080),
            GREY_40_PERCENT      (0x37,   -1, 0x969696),
            PINK                 (0x0E, 0x21, 0xFF00FF),
            GOLD                 (0x33,   -1, 0xFFCC00),
            YELLOW               (0x0D, 0x22, 0xFFFF00),
            BRIGHT_GREEN         (0x0B,   -1, 0x00FF00),
            TURQUOISE            (0x0F, 0x23, 0x00FFFF),
            DARK_RED             (0x10, 0x25, 0x800000),
            SKY_BLUE             (0x28,   -1, 0x00CCFF),
            PLUM                 (0x3D, 0x19, 0x993366),
            GREY_25_PERCENT      (0x16,   -1, 0xC0C0C0),
            ROSE                 (0x2D,   -1, 0xFF99CC),
            LIGHT_YELLOW         (0x2B,   -1, 0xFFFF99),
            LIGHT_GREEN          (0x2A,   -1, 0xCCFFCC),
            LIGHT_TURQUOISE      (0x29, 0x1B, 0xCCFFFF),
            PALE_BLUE            (0x2C,   -1, 0x99CCFF),
            LAVENDER             (0x2E,   -1, 0xCC99FF),
            WHITE                (0x09,   -1, 0xFFFFFF),
            CORNFLOWER_BLUE      (0x18,   -1, 0x9999FF),
            LEMON_CHIFFON        (0x1A,   -1, 0xFFFFCC),
            MAROON               (0x19,   -1, 0x7F0000),
            ORCHID               (0x1C,   -1, 0x660066),
            CORAL                (0x1D,   -1, 0xFF8080),
            ROYAL_BLUE           (0x1E,   -1, 0x0066CC),
            LIGHT_CORNFLOWER_BLUE(0x1F,   -1, 0xCCCCFF),
            TAN                  (0x2F,   -1, 0xFFCC99),
    
            /**
             * 特殊默认/正常/自动颜色
             * 注意,它在默认Map中不能通过HSSFColor返回
    		 * 这个索引是个特例,它在各种setXXXColor中被解释执行
             */
            AUTOMATIC            (0x40,   -1, 0x000000);
    		
    		// 定义私有变量
            private HSSFColor color;
    		
    		/**
    		 * 私有的构造函数,只供内部使用
    		 * @param index 颜色在调色板中的索引值
    		 * @param index2 可选的第二索引
    		 * @param 颜色RGB值
    		 */ 
            HSSFColorPredefined(int index, int index2, int rgb) {
                this.color = new HSSFColor(index, index2, new java.awt.Color(rgb));
            }
    
            /**
             * 返回调用颜色在调色板HSSFPalette中索引值
             */
            public short getIndex() {
                return color.getIndex();
            }
    
            /**
             * 返回调用颜色的可选第二索引值
             */
            public short getIndex2() {
                return color.getIndex2();
            }
    
            /**
             * 返回颜色的三元组表示,即RGB格式
             */
            public short [] getTriplet() {
                return color.getTriplet();
            }
    
            /**
             * 返回以冒号分隔的十六进制字符串,像一个gnumeric三元组
             */
            public String getHexString() {
                return color.getHexString();
            }
    
            /**
             * 返回枚举中预定义的某个颜色的副本
             */
            public HSSFColor getColor() {
                return new HSSFColor(getIndex(), getIndex2(), color.color);
            }
        }
    3.方法



    展开全文
  • POI 自定义颜色 RGB

    2022-03-19 13:48:12
    自定义单元格背景颜色 支持`RGB` XSSFWorkbook HSSFWorkbook

    前言

    自定义背景颜色,不是网上的那几个固定很丑的颜色,支持RGB
    看我这篇就行了 不用走弯路

    解决

    废话不多说 先说自定义 再说固定的那种颜色

    设置RGB

    //注意不要getIndex 得到的short 值并不能设置成功颜色
    //short fontColor1 = new XSSFColor(new java.awt.Color(0, 0, 0)).getIndex();
    XSSFColor xssfColor= new XSSFColor(new java.awt.Color(247, 0, 0));
    //设置背景色
    styleTemp.setFillForegroundColor(xssfColor);
    styleTemp.setFillPattern(FillPatternType.SOLID_FOREGROUND);
    
    

    注意:

    1. Color(0, 0, 0) 三个参数就是RGB颜色
    2. new java.awt 必须是这个类,POI自带的不生效
    3. 字体颜色用这个无效,还得用自带的 HSSFColor.HSSFColorPredefined.WHITE.getIndex()
    4. 附带工具:HTML网页在线拾色器
    5. 附带工具:桌面点击拾色器

    只要用了,IDEA就会显示这个颜色
    在这里插入图片描述

    导出样式

    在这里插入图片描述

    原始操作

    这种是固定的

         //设置背景色
          cellStyle.setFillForegroundColor(index);
          cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
    

    可以看这个链接 他能做到的颜色 很局限,也不好看
    cell设置背景颜色为啥不起作用
    在这里插入图片描述

    拓展 HSSFPalette 调色板

    我用的XSSFWorkbook并没有下边这个方法

    HSSFPalette palette = workbook.getCustomPalette();
      palette.setColorAtIndex(HSSFColor.BLACK.index,(byte)color[0], (byte)color[1], (byte)colo
    

    参考文章:POI中怎么使用自定义字体颜色
    他这个有错误,byte类型127最大,颜色最大值255,用时候注意
    注:工作簿创建有要求

          //用多态方式创建的工作簿没有下列方法
            Workbook wb1 = new HSSFWorkbook();
            //必须这样创建 才可以调用调色板
            HSSFWorkbook wb2 = new HSSFWorkbook();
            wb2.getCustomPalette();
    

    拓展2

    关于POI下载其他的样式调节方式可以看我的新博客POI 样式调节 😃

    展开全文
  • JAVA POI 自定义颜色

    2021-03-04 03:49:42
    JAVA POI 中使用颜色的类叫: HSSFColor, 它默认提供了几十种常用的...但在实际应用中, 这些已经定义的颜色并不能满足需求(如客户给你一个RGB颜色值255,204,153; 并要求导出的Excel中使用这个颜色).我们需要HSSFPalet...

    JAVA  POI 中使用颜色的类叫:  HSSFColor, 它默认提供了几十种常用的颜色,如BLANK; BLUE等, 且许多时候都是使用HSSFColor的index属性值(如 HSSFColor.BLUE.index) ;

    但在实际应用中, 这些已经定义的颜色并不能满足需求(如客户给你一个RGB颜色值255,204,153; 并要求导出的Excel中使用这个颜色).

    我们需要HSSFPalette 来帮忙, (调用HSSFWorkbook的 getCustomPalette()方法获取该对象)

    使用HSSFPalette的前提条件: 必须使用同一个HSSFWorkbook对象.

    HSSFPalette 提供了两种方式来自定义颜色:

    1, 修改已经存在的颜色对象的RGB值

    代码如下,将ORANGE的颜色值修改为(255,204,153)

    HSSFPalette customPalette = workbook.getCustomPalette();

    customPalette.setColorAtIndex(HSSFColor.ORANGE.index, (byte) 255, (byte) 204, (byte) 153);      在修改后,再设置颜色为ORANGE时,将使用修改后的颜色值.

    2, 通过RGB值添加一个颜色(有一定的限制)

    代码如下, 添加一个颜色(153,204,255),返回一个HSSFColor对象.

    HSSFPalette customPalette = workbook.getCustomPalette();

    HSSFColor newColor = customPalette.addColor((byte) 153, (byte) 204, (byte) 255);            这样就得到新的颜色对象newColor,可使用之.

    (第2种方法的限制是在 使用时必须要有newColor对象的引用才行,而第1种方式则没这限制)

    HSSFPalette除了提供添加(或修改)颜色值方法以外, 还提供了搜索相似颜色的方法findSimilarColor(),可根据一个RGB值来得到近似的颜色值.

    参考:  http://ljhzzyx.blog.163.com/blog/static/38380312200972614553129/

    展开全文
  • POI设置自定义的RGB背景颜色

    万次阅读 2017-08-08 15:53:06
    POI如何自定义单元格背景颜色??? 解决问题 例一:具体的看注释 import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.HSSFColor; import java.io.FileOutputStream; /** * ...
  • NPOI自带的颜色有时不能满足我们要求时,我们需要自己定义背景色,而且NPOI的颜色类型是short类型,而.Net颜色类是Color类型,怎么让它们相互之间转换呢?网上有一段代码是vb的可以解决上述问题,本人把它翻译成C#的,...
  • 【POI】自定义cell的颜色

    千次阅读 2017-05-16 10:28:13
    流程说明:POI对象中包括一部分基础颜色,其使用方式为HSSFCellStyle styleheader = wb.createCellStyle();// 创建一个单元的样式 // 背景色的设定 style.setFillBackgroundColor(HSSFColor.GREEN.index);其中,...
  • POI.HSSF.util.HSSFColor中所有颜色索引

    千次阅读 2012-02-27 11:29:31
    org.apache.poi.hssf.util.HSSFColor$LIGHT_CORNFLOWER_BLUE@b0e84b color org.apache.poi.hssf.util.HSSFColor$ROYAL_BLUE@62a19d color org.apache.poi.hssf....
  • c#如何获取excel单元格的RGB颜色

    千次阅读 2014-08-26 12:15:23
    这段时间一直在做office的工作。前2天获取单元格的颜色的问题一直没搞明白。 开始我想用的就是Npoi....通过IColor的RGB属性获取可是经过大量用例测试这里获取的rgb并不准确只有部分颜色对的上。 如图 后来我甚至问了n
  • HSSFColor.RED等在poi-4.1版本后过期

    千次阅读 2020-08-25 09:42:34
    在4.1之前采用的是枚举类型,setColor(HSSFColor.RED.index); 在4.1之后采用的是枚举类型,setColor(HSSFColor.HSSFColorPredefined.RED.getIndex()); public static enum HSSFColorPredefined { BLACK(8, -1, 0),...
  • c#怎样获取excel单元格的RGB颜色

    千次阅读 2017-11-15 13:23:00
    前2天获取单元格的颜色的问题一直没搞明确。 開始我想用的就是Npoi.主要前一部分的工作都是用Npoi完毕的 row.GetCell(j).CellStyle.FillBackgroundColorColor 获取IColor接口。通过IColor的RGB属性获取但是经过大量...
  • 使用poi导出excel设置颜色(JAVA)

    万次阅读 多人点赞 2019-02-02 10:03:46
    参考文档:https://blog.csdn.net/z1074907546/article/details/50544178 java使用poi导出excel设置颜色 POI 设置单元格背景色 cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//设置前景填充样式 ...
  • /** * @author mohdasif_2688@rocketmail.com * */ public class ExcelPractice { /** * Must Read : * * Code to get the background color from an excel sheet in RGB Format and display on the console * Save...
  • NPOI自定义单元格背景颜色

    千次阅读 2019-05-22 09:22:13
    NPOI自定义单元格背景颜色 ...在NPOI中默认的颜色类是HSSFColor,如果要使用NPOI中的颜色就必须想办法转化为HSSFColor。分析了一下原代码,HSSFColor内置了几十种颜色,都是用内部类继承HSSFColor这...
  • style = workbook.createCellStyle(); style.setFillForegroundColor(IndexedColors.AUTOMATIC.getIndex()); style.setFillPattern(CellStyle.SOLID_FOREGROUND);...style.setFillBackgroundColor(HSSFColor.AQUA.ind.
  • POI 颜色Color

    万次阅读 2017-09-29 11:24:57
    1. 颜色概述颜色Color是单元格的基本样式,单元格默认颜色为黑色 - 单元格边框颜色 - 单元格填充色 - 单元格字体颜色2. 预定自颜色POI中预定义了56种颜色,索引从0x8 - 0x40,...org.apache.poi.hssf.util.HSSFColor$
  • To get the appropriate POI Color object, you need to go down the HSSF or XSSF path, extract the appropriate HSSFColor or XSSFColor, then get the RGB values out of the color. int red = 0; int green = ...
  • //replacing the standard red with freebsd.org red palette.setColorAtIndex(HSSFColor.RED.index, (byte) 153, //RGB red (0-255) (byte) 0, //RGB green (byte) 0 //RGB blue ); //replacing lime with freebsd...
  • // 颜色RGB代码:#C7EDCC,这里可以更换成你需要的颜色 String Color = “#C7EDCC”; String r = Color.substring(1, 3); String g = Color.substring(3, 5); String b = Color.substring(5, 7); int r2 = ...
  • 2016-12-27 10:44 by 杨新华, 5242 阅读, 0 评论, 收藏, 编辑 NPOI针对office2003使用HSSFWorkbook,对于offce2007及以上...在NPOI中默认的颜色类是HSSFColor,它内置的颜色有几十种供我们选择,如果不...
  • 您需要做的是覆盖预设颜色。这是我正在使用的函数示例:public HSSFColor setColor(HSSFWorkbook workbook, byte r,byte g, byte b){HSSFPalette palette = workbook.getCustomPalette();HSSFColor hssfColo...
  • (一)POI 4.1.2 颜色 color

    千次阅读 2020-09-14 14:24:28
    (一)POI 4.1.2 颜色 color 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录(一)POI 4.1.2 颜色 color前言一、pandas是什么?二、...
  • 导出多种颜色主要有两个细节要注意 否则就只会输出最后一种颜色 第一点: HSSFCellStyle style = wb.createCellStyle(); 这个对象要创建在循环体里面 每一次都获得新的style 。 第二点: 如果你要的颜色 系统...
  • POI之Excel自定义单元格背景颜色

    万次阅读 2016-04-29 16:50:48
    金木水火你提出问题POI如何自定义单元格背景颜色???解决问题例一:具体的看注释import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.HSSFColor;import java.io.FileOutputStream;/** * ...
  • C#、NPOI基本样式 背景颜色字体等

    千次阅读 2019-09-07 15:45:31
    //RGB颜色值,第一个值:8~64之间,后面三个值为RGB色值 palette . SetColorAtIndex ( ( short ) 8 , 179 , 179 , 179 ) ; //颜色实例 HSSFColor hSSFColor = palette . FindColor ( 179 , 179 , 179 ) ; ...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 313
精华内容 125
关键字:

hssfcolor rgb颜色