jxl 如何自定义单元格的颜色(是自定义新的颜色,不是用jxl自带的)

shaozhengmao 发布于 2013/07/26 03:24
阅读 2K+
收藏 0
JXL
  1.  public static Colour getNearestColour(String strColor) {  
  2.         Color cl = Color.decode(strColor);  
  3.         Colour color = null;  
  4.         Colour[] colors = Colour.getAllColours();  
  5.         if ((colors != null) && (colors.length > 0)) {  
  6.            Colour crtColor = null;  
  7.            int[] rgb = null;  
  8.            int diff = 0;  
  9.            int minDiff = 999;  
  10.            for (int i = 0; i < colors.length; i++) {  
  11.                 crtColor = colors[i];  
  12.                 rgb = new int[3];  
  13.                 rgb[0] = crtColor.getDefaultRGB().getRed();  
  14.                 rgb[1] = crtColor.getDefaultRGB().getGreen();  
  15.                 rgb[2] = crtColor.getDefaultRGB().getBlue();  
  16.       
  17.                 diff = Math.abs(rgb[0] - cl.getRed())  
  18.                   + Math.abs(rgb[1] - cl.getGreen())  
  19.                   + Math.abs(rgb[2] - cl.getBlue());  
  20.                 if (diff < minDiff) {  
  21.                  minDiff = diff;  
  22.                  color = crtColor;  
  23.                 }  
  24.            }  
  25.         }  
  26.         if (color == null)  
  27.            color = Colour.BLACK;  
  28.         return color;  
  29.     }  

上面的这个方法已经试过,并不能达成想要的结果。

尝试了继承jxl.format.colour这种方式自定义,也未成功。

尝试在jxl.format.colour源码中去更改,重新打JAR 也未成功。

不知是方法不对,还是如何,请朋友们多指教。


加载中
0
levis999
levis999
WritableFont titleFont = new WritableFont(WritableFont.TIMES, 14,
WritableFont.BOLD, false);

WritableCellFormat titleFormat = new WritableCellFormat(titleFont);

titleFormat.setBackground(jxl.format.Colour.GRAY_50);// 背景灰色


sheet.addCell方法中加入titleFormat

shaozhengmao
shaozhengmao
这个是用JXL的自带颜色,我的意思是要自己自定义新的颜色
0
l
leior

可以通过重置jxl的默认颜色来实现自定义新的颜色。参考代码如下:

workbook.setColourRGB(Colour.LIGHT_BLUE, 0x76, 0xEE, 0x00);
WritableCellFormat wcf2 = new WritableCellFormat(font);// 单元格样式
wcf2.setBackground(Colour.LIGHT_BLUE);
sheet.addCell(new Label(1, 3, "测试颜色---自定义#76EE00", wcf2));

具体代码例子,可以参考这个 http://www.devnote.cn/java/2013/0819/71.html

魔眼小哥
魔眼小哥
此答案甚好,深得我心
返回顶部
顶部