因为我需要表格的背景颜色十分多种,甚至可能上百中,所以仅仅用自定义的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天

解决方案 »

  1.   

    POI没用过,之前用jxl处理过Excel,可做导入导出
      

  2.   

    POI导入导出当然也可以做到,但是,现在我的EXCEL需要分成很多种样式,需要背景色不同来分开那些数据.但是不知道怎么来设置多种颜色.只能设置48种..因为setFillForegroundColor这两个设置背景的只认short类型的...
      

  3.   

    我顏色可以隨機讀取不同的RGB值,得到不同的顏色了,但是問題是給不同單元格不同顏色的時候,得到的總是最後的那個顏色,還是實現不了LZ要求,幫忙頂!~~關注ing
      

  4.   

    HSSFWorkbook wb=new HSSFWorkbook();
    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
      

  5.   

    楼主是不是想设置比excel单元格填充颜色面板上更多的颜色,但受excel系统限制,只能设定并保存默认数量的颜色。好想比较困难
      

  6.   


    对,默认只能56种颜色(索引为8~64),这56种所指的颜色你可以变化,但是反正你一个wb最多只能有56种颜色......现在看得貌似可以用XSSF解决(原来用的是HSSF,他们的区别是XSSF是Office2007的,而HSSF是旧版的通用一点...)正在尝试,...
      

  7.   


    你这个,如果这个wb没有这种颜色,会返回null的,它找颜色也是在索引8~64找的...有个方法addColor也是在8~64看看其是否为空,空就addColor..都满就抛出异常...
    不知道是我不会用还是啥..反正我觉得addColor这个函数很废..因为系统都预置了8~64的颜色一般都不为空的....没看它的源码以为可以颜色数目无上限空欢喜..
      

  8.   

    恩,试过了,用XSSF是可以的,不过,哎,当颜色多的时候,色差都不知道怎么分别它....
    相对于HSSF的index是8~64,XSSF的index可以自己设.所以颜色的数目可以灰常灰常多.只有你真的能够分出来因为我是需要用来做广告投放的排期表.譬如销售打开这3个月的排期表.然后各个位置某几天分别不同的客户投放广告.各个广告一种颜色的背景+客户的名称.....