📄 hssfcolor.java
字号:
/* ==================================================================== Copyright 2002-2004 Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.==================================================================== */package org.apache.poi.hssf.util;import java.util.*;/** * Intends to provide support for the very evil index to triplet issue and * will likely replace the color contants interface for HSSF 2.0. * This class contains static inner class members for representing colors. * Each color has an index (for the standard palette in Excel (tm) ), * native (RGB) triplet and string triplet. The string triplet is as the * color would be represented by Gnumeric. Having (string) this here is a bit of a * collusion of function between HSSF and the HSSFSerializer but I think its * a reasonable one in this case. * * @author Andrew C. Oliver (acoliver at apache dot org) * @author Brian Sanders (bsanders at risklabs dot com) - full default color palette */public class HSSFColor{ private final static int PALETTE_SIZE = 56; private final static int DISTINCT_COLOR_COUNT = 46; /** Creates a new instance of HSSFColor */ public HSSFColor() { } /** * this function returns all colors in a hastable. Its not implemented as a * static member/staticly initialized because that would be dirty in a * server environment as it is intended. This means you'll eat the time * it takes to create it once per request but you will not hold onto it * if you have none of those requests. * * @return a hashtable containing all colors mapped to their excel-style * pallette index */ public final static Hashtable getIndexHash() { Hashtable hash = new Hashtable(PALETTE_SIZE); hash.put(new Integer(HSSFColor.BLACK.index), new HSSFColor.BLACK()); hash.put(new Integer(HSSFColor.BROWN.index), new HSSFColor.BROWN()); hash.put(new Integer(HSSFColor.OLIVE_GREEN.index), new HSSFColor.OLIVE_GREEN()); hash.put(new Integer(HSSFColor.DARK_GREEN.index), new HSSFColor.DARK_GREEN()); hash.put(new Integer(HSSFColor.DARK_TEAL.index), new HSSFColor.DARK_TEAL()); hash.put(new Integer(HSSFColor.DARK_BLUE.index), new HSSFColor.DARK_BLUE()); hash.put(new Integer(HSSFColor.DARK_BLUE.index2), new HSSFColor.DARK_BLUE()); hash.put(new Integer(HSSFColor.INDIGO.index), new HSSFColor.INDIGO()); hash.put(new Integer(HSSFColor.GREY_80_PERCENT.index), new HSSFColor.GREY_80_PERCENT()); hash.put(new Integer(HSSFColor.ORANGE.index), new HSSFColor.ORANGE()); hash.put(new Integer(HSSFColor.DARK_YELLOW.index), new HSSFColor.DARK_YELLOW()); hash.put(new Integer(HSSFColor.GREEN.index), new HSSFColor.GREEN()); hash.put(new Integer(HSSFColor.TEAL.index), new HSSFColor.TEAL()); hash.put(new Integer(HSSFColor.TEAL.index2), new HSSFColor.TEAL()); hash.put(new Integer(HSSFColor.BLUE.index), new HSSFColor.BLUE()); hash.put(new Integer(HSSFColor.BLUE.index2), new HSSFColor.BLUE()); hash.put(new Integer(HSSFColor.BLUE_GREY.index), new HSSFColor.BLUE_GREY()); hash.put(new Integer(HSSFColor.GREY_50_PERCENT.index), new HSSFColor.GREY_50_PERCENT()); hash.put(new Integer(HSSFColor.RED.index), new HSSFColor.RED()); hash.put(new Integer(HSSFColor.LIGHT_ORANGE.index), new HSSFColor.LIGHT_ORANGE()); hash.put(new Integer(HSSFColor.LIME.index), new HSSFColor.LIME()); hash.put(new Integer(HSSFColor.SEA_GREEN.index), new HSSFColor.SEA_GREEN()); hash.put(new Integer(HSSFColor.AQUA.index), new HSSFColor.AQUA()); hash.put(new Integer(HSSFColor.LIGHT_BLUE.index), new HSSFColor.LIGHT_BLUE()); hash.put(new Integer(HSSFColor.VIOLET.index), new HSSFColor.VIOLET()); hash.put(new Integer(HSSFColor.VIOLET.index2), new HSSFColor.VIOLET()); hash.put(new Integer(HSSFColor.GREY_40_PERCENT.index), new HSSFColor.GREY_40_PERCENT()); hash.put(new Integer(HSSFColor.PINK.index), new HSSFColor.PINK()); hash.put(new Integer(HSSFColor.PINK.index2), new HSSFColor.PINK()); hash.put(new Integer(HSSFColor.GOLD.index), new HSSFColor.GOLD()); hash.put(new Integer(HSSFColor.YELLOW.index), new HSSFColor.YELLOW()); hash.put(new Integer(HSSFColor.YELLOW.index2), new HSSFColor.YELLOW()); hash.put(new Integer(HSSFColor.BRIGHT_GREEN.index), new HSSFColor.BRIGHT_GREEN()); hash.put(new Integer(HSSFColor.BRIGHT_GREEN.index2), new HSSFColor.BRIGHT_GREEN()); hash.put(new Integer(HSSFColor.TURQUOISE.index), new HSSFColor.TURQUOISE()); hash.put(new Integer(HSSFColor.TURQUOISE.index2), new HSSFColor.TURQUOISE()); hash.put(new Integer(HSSFColor.DARK_RED.index), new HSSFColor.DARK_RED()); hash.put(new Integer(HSSFColor.DARK_RED.index2), new HSSFColor.DARK_RED()); hash.put(new Integer(HSSFColor.SKY_BLUE.index), new HSSFColor.SKY_BLUE()); hash.put(new Integer(HSSFColor.PLUM.index), new HSSFColor.PLUM()); hash.put(new Integer(HSSFColor.PLUM.index2), new HSSFColor.PLUM()); hash.put(new Integer(HSSFColor.GREY_25_PERCENT.index), new HSSFColor.GREY_25_PERCENT()); hash.put(new Integer(HSSFColor.ROSE.index), new HSSFColor.ROSE()); hash.put(new Integer(HSSFColor.LIGHT_YELLOW.index), new HSSFColor.LIGHT_YELLOW()); hash.put(new Integer(HSSFColor.LIGHT_GREEN.index), new HSSFColor.LIGHT_GREEN()); hash.put(new Integer(HSSFColor.LIGHT_TURQUOISE.index), new HSSFColor.LIGHT_TURQUOISE()); hash.put(new Integer(HSSFColor.LIGHT_TURQUOISE.index2), new HSSFColor.LIGHT_TURQUOISE()); hash.put(new Integer(HSSFColor.PALE_BLUE.index), new HSSFColor.PALE_BLUE()); hash.put(new Integer(HSSFColor.LAVENDER.index), new HSSFColor.LAVENDER()); hash.put(new Integer(HSSFColor.WHITE.index), new HSSFColor.WHITE()); hash.put(new Integer(HSSFColor.CORNFLOWER_BLUE.index), new HSSFColor.CORNFLOWER_BLUE()); hash.put(new Integer(HSSFColor.LEMON_CHIFFON.index), new HSSFColor.LEMON_CHIFFON()); hash.put(new Integer(HSSFColor.MAROON.index), new HSSFColor.MAROON()); hash.put(new Integer(HSSFColor.ORCHID.index), new HSSFColor.ORCHID()); hash.put(new Integer(HSSFColor.CORAL.index), new HSSFColor.CORAL()); hash.put(new Integer(HSSFColor.ROYAL_BLUE.index), new HSSFColor.ROYAL_BLUE()); hash.put(new Integer(HSSFColor.LIGHT_CORNFLOWER_BLUE.index), new HSSFColor.LIGHT_CORNFLOWER_BLUE()); return hash; } /** * this function returns all colors in a hastable. Its not implemented as a * static member/staticly initialized because that would be dirty in a * server environment as it is intended. This means you'll eat the time * it takes to create it once per request but you will not hold onto it * if you have none of those requests. * * @return a hashtable containing all colors mapped to their gnumeric-like * triplet string */ public final static Hashtable getTripletHash() { Hashtable hash = new Hashtable(DISTINCT_COLOR_COUNT); hash.put(HSSFColor.BLACK.hexString, new HSSFColor.BLACK()); hash.put(HSSFColor.BROWN.hexString, new HSSFColor.BROWN()); hash.put(HSSFColor.OLIVE_GREEN.hexString, new HSSFColor.OLIVE_GREEN()); hash.put(HSSFColor.DARK_GREEN.hexString, new HSSFColor.DARK_GREEN()); hash.put(HSSFColor.DARK_TEAL.hexString, new HSSFColor.DARK_TEAL()); hash.put(HSSFColor.DARK_BLUE.hexString, new HSSFColor.DARK_BLUE()); hash.put(HSSFColor.INDIGO.hexString, new HSSFColor.INDIGO()); hash.put(HSSFColor.GREY_80_PERCENT.hexString, new HSSFColor.GREY_80_PERCENT()); hash.put(HSSFColor.ORANGE.hexString, new HSSFColor.ORANGE()); hash.put(HSSFColor.DARK_YELLOW.hexString, new HSSFColor.DARK_YELLOW()); hash.put(HSSFColor.GREEN.hexString, new HSSFColor.GREEN()); hash.put(HSSFColor.TEAL.hexString, new HSSFColor.TEAL()); hash.put(HSSFColor.BLUE.hexString, new HSSFColor.BLUE()); hash.put(HSSFColor.BLUE_GREY.hexString, new HSSFColor.BLUE_GREY()); hash.put(HSSFColor.GREY_50_PERCENT.hexString, new HSSFColor.GREY_50_PERCENT()); hash.put(HSSFColor.RED.hexString, new HSSFColor.RED()); hash.put(HSSFColor.LIGHT_ORANGE.hexString, new HSSFColor.LIGHT_ORANGE()); hash.put(HSSFColor.LIME.hexString, new HSSFColor.LIME()); hash.put(HSSFColor.SEA_GREEN.hexString, new HSSFColor.SEA_GREEN()); hash.put(HSSFColor.AQUA.hexString, new HSSFColor.AQUA()); hash.put(HSSFColor.LIGHT_BLUE.hexString, new HSSFColor.LIGHT_BLUE()); hash.put(HSSFColor.VIOLET.hexString, new HSSFColor.VIOLET()); hash.put(HSSFColor.GREY_40_PERCENT.hexString, new HSSFColor.GREY_40_PERCENT()); hash.put(HSSFColor.PINK.hexString, new HSSFColor.PINK()); hash.put(HSSFColor.GOLD.hexString, new HSSFColor.GOLD()); hash.put(HSSFColor.YELLOW.hexString, new HSSFColor.YELLOW()); hash.put(HSSFColor.BRIGHT_GREEN.hexString, new HSSFColor.BRIGHT_GREEN()); hash.put(HSSFColor.BRIGHT_GREEN.hexString, new HSSFColor.TURQUOISE()); hash.put(HSSFColor.DARK_RED.hexString, new HSSFColor.DARK_RED()); hash.put(HSSFColor.SKY_BLUE.hexString, new HSSFColor.SKY_BLUE()); hash.put(HSSFColor.PLUM.hexString, new HSSFColor.PLUM()); hash.put(HSSFColor.GREY_25_PERCENT.hexString, new HSSFColor.GREY_25_PERCENT()); hash.put(HSSFColor.ROSE.hexString, new HSSFColor.ROSE()); hash.put(HSSFColor.LIGHT_YELLOW.hexString, new HSSFColor.LIGHT_YELLOW()); hash.put(HSSFColor.LIGHT_GREEN.hexString, new HSSFColor.LIGHT_GREEN()); hash.put(HSSFColor.LIGHT_TURQUOISE.hexString, new HSSFColor.LIGHT_TURQUOISE()); hash.put(HSSFColor.PALE_BLUE.hexString, new HSSFColor.PALE_BLUE()); hash.put(HSSFColor.LAVENDER.hexString, new HSSFColor.LAVENDER()); hash.put(HSSFColor.WHITE.hexString, new HSSFColor.WHITE()); hash.put(HSSFColor.CORNFLOWER_BLUE.hexString, new HSSFColor.CORNFLOWER_BLUE()); hash.put(HSSFColor.LEMON_CHIFFON.hexString, new HSSFColor.LEMON_CHIFFON()); hash.put(HSSFColor.MAROON.hexString, new HSSFColor.MAROON()); hash.put(HSSFColor.ORCHID.hexString, new HSSFColor.ORCHID()); hash.put(HSSFColor.CORAL.hexString, new HSSFColor.CORAL()); hash.put(HSSFColor.ROYAL_BLUE.hexString, new HSSFColor.ROYAL_BLUE()); hash.put(HSSFColor.LIGHT_CORNFLOWER_BLUE.hexString, new HSSFColor.LIGHT_CORNFLOWER_BLUE()); return hash; } /** * @return index to the standard palette */ public short getIndex() { return BLACK.index; } /** * @return triplet representation like that in Excel */ public short [] getTriplet() { return BLACK.triplet; } // its a hack but its a good hack /** * @return a hex string exactly like a gnumeric triplet */ public String getHexString() { return BLACK.hexString; } /** * Class BLACK * */ public final static class BLACK extends HSSFColor { public final static short index = 0x8; public final static short[] triplet = { 0, 0, 0 }; public final static String hexString = "0:0:0"; public short getIndex() { return index; } public short [] getTriplet() { return triplet; } public String getHexString() { return hexString; } } /** * Class BROWN * */ public final static class BROWN extends HSSFColor { public final static short index = 0x3c; public final static short[] triplet = { 153, 51, 0 }; public final static String hexString = "9999:3333:0"; public short getIndex() { return index; } public short [] getTriplet() { return triplet; } public String getHexString() { return hexString; } } /** * Class OLIVE_GREEN * */ public static class OLIVE_GREEN extends HSSFColor { public final static short index = 0x3b; public final static short[] triplet = { 51, 51, 0 }; public final static String hexString = "3333:3333:0"; public short getIndex() { return index; } public short [] getTriplet() { return triplet; } public String getHexString() { return hexString; } } /** * Class DARK_GREEN * */ public final static class DARK_GREEN extends HSSFColor { public final static short index = 0x3a; public final static short[] triplet = { 0, 51, 0 }; public final static String hexString = "0:3333:0"; public short getIndex() { return index; } public short [] getTriplet() { return triplet; } public String getHexString() { return hexString; } } /** * Class DARK_TEAL * */ public final static class DARK_TEAL extends HSSFColor { public final static short index = 0x38; public final static short[] triplet = { 0, 51, 102 }; public final static String hexString = "0:3333:6666"; public short getIndex() { return index; } public short [] getTriplet() { return triplet; } public String getHexString() { return hexString; } } /** * Class DARK_BLUE * */ public final static class DARK_BLUE extends HSSFColor { public final static short index = 0x12; public final static short index2 = 0x20; public final static short[] triplet = { 0, 0, 128 }; public final static String hexString = "0:0:8080"; public short getIndex() { return index; } public short [] getTriplet() { return triplet; } public String getHexString() { return hexString; } } /** * Class INDIGO * */ public final static class INDIGO extends HSSFColor { public final static short index = 0x3e; public final static short[] triplet = { 51, 51, 153 }; public final static String hexString = "3333:3333:9999"; public short getIndex() { return index; } public short [] getTriplet() { return triplet; } public String getHexString() { return hexString; } } /** * Class GREY_80_PERCENT * */ public final static class GREY_80_PERCENT extends HSSFColor { public final static short index = 0x3f; public final static short[] triplet = { 51, 51, 51 }; public final static String hexString = "3333:3333:3333"; public short getIndex() { return index; } public short [] getTriplet() { return triplet; } public String getHexString() { return hexString; } } /** * Class DARK_RED * */ public final static class DARK_RED extends HSSFColor { public final static short index = 0x10; public final static short index2 = 0x25; public final static short[] triplet = { 128, 0, 0 }; public final static String hexString = "8080:0:0"; public short getIndex() { return index; } public short [] getTriplet() { return triplet; } public String getHexString() { return hexString; } } /** * Class ORANGE * */ public final static class ORANGE extends HSSFColor { public final static short index = 0x35; public final static short[] triplet = { 255, 102, 0 }; public final static String hexString = "FFFF:6666:0"; public short getIndex() { return index; } public short [] getTriplet() { return triplet; } public String getHexString() { return hexString; } } /** * Class DARK_YELLOW * */ public final static class DARK_YELLOW extends HSSFColor { public final static short index = 0x13; public final static short[] triplet = { 128, 128, 0 };
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -