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

发布于 2021-11-24 06:20:18 字数 4077 浏览 798 评论 4

  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 也未成功。

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


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

灵芸 2021-11-24 21:37:25

此答案甚好,深得我心

居里长安 2021-11-24 21:12:55

可以通过重置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

如此安好 2021-11-24 15:13:47

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

想挽留 2021-11-24 06:55:59

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文