jxl 如何自定义单元格的颜色(是自定义新的颜色,不是用jxl自带的)
- public static Colour getNearestColour(String strColor) {
- Color cl = Color.decode(strColor);
- 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] - cl.getRed())
- + Math.abs(rgb[1] - cl.getGreen())
- + Math.abs(rgb[2] - cl.getBlue());
- if (diff < minDiff) {
- minDiff = diff;
- color = crtColor;
- }
- }
- }
- if (color == null)
- color = Colour.BLACK;
- return color;
- }
上面的这个方法已经试过,并不能达成想要的结果。
尝试了继承jxl.format.colour这种方式自定义,也未成功。
尝试在jxl.format.colour源码中去更改,重新打JAR 也未成功。
不知是方法不对,还是如何,请朋友们多指教。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
此答案甚好,深得我心
可以通过重置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
这个是用JXL的自带颜色,我的意思是要自己自定义新的颜色
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