import java.awt.Color; import jxl.format.Colour; /** *字体颜色转换工具类 * @author tanghui * */ public class ColorUtil { // 把字符串表达的颜色值转换成java.awt.Color public static Color parseToColor(String c) { Color convertedColor = Color.ORANGE; try { convertedColor = new Color(Integer.parseInt(c, 16)); } catch (NumberFormatException e) { e.getStackTrace(); } return convertedColor; } public static Colour getNearestColour(Color awtColor) { Colour color = null; Colour[] colors = Colour.getAllColours(); if ((colors != null) && (colors.length > 0)) { Colour crtColor = null; int[] rgb = null; int diff = 0; int minDiff = 999; for (int i = 0; i < colors.length; i++) { crtColor = colors[i]; rgb = new int[3]; rgb[0] = crtColor.getDefaultRGB().getRed(); rgb[1] = crtColor.getDefaultRGB().getGreen(); rgb[2] = crtColor.getDefaultRGB().getBlue(); diff = Math.abs(rgb[0] - awtColor.getRed()) + Math.abs(rgb[1] - awtColor.getGreen()) + Math.abs(rgb[2] - awtColor.getBlue()); if (diff < minDiff) { minDiff = diff; color = crtColor; } } } if (color == null) color = Colour.BLACK; return color; } // Color转换为16进制显示 public static String toHexEncoding(Color color) { String R, G, B; StringBuffer sb = new StringBuffer(); R = Integer.toHexString(color.getRed()); G = Integer.toHexString(color.getGreen()); B = Integer.toHexString(color.getBlue()); R = R.length() == 1 ? "0" + R : R; G = G.length() == 1 ? "0" + G : G; B = B.length() == 1 ? "0" + B : B; sb.append("0x"); sb.append(R); sb.append(G); sb.append(B); return sb.toString(); } public static Colour getColour(final String c) { Color cl = parseToColor(c); return getNearestColour(cl); } //测试 public static void main(String[] args){ // Color cs = ColorUtil.parseToColor("6026FF"); // System.out.println(cs); } }