`
ifox
  • 浏览: 61736 次
社区版块
存档分类
最新评论

POI算定义颜色

 
阅读更多

今天在使用POI导出excel时需要设置背景颜色,经过查找发现说POI内置的只有56种颜色。

 

setColorAtIndex后面三个参数为颜色RGB。需要注意的是第一个参数不能超过64,内置颜色已经占据了56个了、所以你懂得。

主要代码:

public boolean obatinButtjointAnalyseList(List<String[]> list,HSSFWorkbook wb){
        HSSFPalette hp=wb.getCustomPalette();
        hp.setColorAtIndex((short)63, (byte)255, (byte)204, (byte)0);
	HSSFCellStyle cellStyle=wb.createCellStyle();
	cellStyle.setWrapText(true);
	HSSFFont font = wb.createFont();   //设置字体的样式
        font.setFontHeightInPoints((short)14);   //字体大小
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        cellStyle.setFont(font);
        cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
        cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
        cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
        cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
        cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        cellStyle.setFillForegroundColor((short) 63);
 主要代码为黑体的,比较好奇的是,byte最高不是128吗?255强制转换成byte的时候应该丢失阿。为什么还能正常显示颜色值?
分享到:
评论
2 楼 ifox 2012-12-03  
在java中,byte是8位。在C中,byte是4位。
               by:freezingsky

嗨 ,论坛的一哥们给出的答案。
看来基础不牢固就是不行呀,byte最高正整数为-128-127
负值也可以代表咯。
1 楼 ifox 2012-11-30  
现在想想,可能是反正颜色的值是在255以内,转换成byte时就以-值转换成正确的rgb吧。。。

相关推荐

Global site tag (gtag.js) - Google Analytics