因为我需要表格的背景颜色十分多种,甚至可能上百中,所以仅仅用自定义的HSSFColor.BLACK这些不够.
现在问题出来了
一般自定义颜色的方法是
HSSFPalette palette = wb.getCustomPalette();
palette.setColorAtIndex(HSSFColor.RED.index, (byte) 153, (byte) 0, (byte) 0);
然后style.setFillForegroundColor(HSSFColor.RED.index);但是,类HSSFPalette的setColorAtIndex中第一个变量是short,也就是HSSFColor.BLACK这类系统自定义的颜色.这样就限定了我只能用系统的几十个颜色(虽然某个颜色所对应的RGB可以换);而且,HSSFCellStyle的setFillForegroundColor等两个设置背景颜色的方法的变量也是short的....请问有人只对怎么才能使Cell的背景颜色上百种吗?而并不只是系统限死的48种(注意,这里限制的是因为setColorAtIndex只能对系统的48个全局变量重新赋值)
请问有人能够帮忙指导一下吗?谢谢PS:咋公司放假就这么遵守国家规定呢=.=NND 7天
现在问题出来了
一般自定义颜色的方法是
HSSFPalette palette = wb.getCustomPalette();
palette.setColorAtIndex(HSSFColor.RED.index, (byte) 153, (byte) 0, (byte) 0);
然后style.setFillForegroundColor(HSSFColor.RED.index);但是,类HSSFPalette的setColorAtIndex中第一个变量是short,也就是HSSFColor.BLACK这类系统自定义的颜色.这样就限定了我只能用系统的几十个颜色(虽然某个颜色所对应的RGB可以换);而且,HSSFCellStyle的setFillForegroundColor等两个设置背景颜色的方法的变量也是short的....请问有人只对怎么才能使Cell的背景颜色上百种吗?而并不只是系统限死的48种(注意,这里限制的是因为setColorAtIndex只能对系统的48个全局变量重新赋值)
请问有人能够帮忙指导一下吗?谢谢PS:咋公司放假就这么遵守国家规定呢=.=NND 7天
HSSFColor color = wb.getCustomPalette().findColor(byte red,
byte green,
byte blue)
red - the RGB red component, between 0 and 255 inclusive
green - the RGB green component, between 0 and 255 inclusive
blue - the RGB blue component, between 0 and 255 inclusive
对,默认只能56种颜色(索引为8~64),这56种所指的颜色你可以变化,但是反正你一个wb最多只能有56种颜色......现在看得貌似可以用XSSF解决(原来用的是HSSF,他们的区别是XSSF是Office2007的,而HSSF是旧版的通用一点...)正在尝试,...
你这个,如果这个wb没有这种颜色,会返回null的,它找颜色也是在索引8~64找的...有个方法addColor也是在8~64看看其是否为空,空就addColor..都满就抛出异常...
不知道是我不会用还是啥..反正我觉得addColor这个函数很废..因为系统都预置了8~64的颜色一般都不为空的....没看它的源码以为可以颜色数目无上限空欢喜..
相对于HSSF的index是8~64,XSSF的index可以自己设.所以颜色的数目可以灰常灰常多.只有你真的能够分出来因为我是需要用来做广告投放的排期表.譬如销售打开这3个月的排期表.然后各个位置某几天分别不同的客户投放广告.各个广告一种颜色的背景+客户的名称.....