POI颜色索引

POI颜色大全

POI颜色大全.pdf

网络上面找到的资料都是 HSSFColor中颜色索引

现在大家基本都用XSSF了吧。即07之后的 xlsx 格式的excel

设置颜色的基本方法

thStyle.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND); //设置前景填充样式 thStyle.setFillForegroundColor(IndexedColors.LIGHT_TURQUOISE.getIndex());//设置颜色

 

POI 颜色 是一个short值。你可以直接设置数字,可是这样你或之后的人并不知道这个数字代表的颜色是什么。所以这里把常用的颜色放到IndexedColors中。

IndexColors提供了(64-8)56种颜色,真亏他起了56个名字。。。

这里用

for (IndexedColors c : IndexedColors.values())

即可遍历全部颜色

将颜色写入到excel。

第一个数值表示这个颜色的short值

第二个名字表示 颜色名 IndexedColors.颜色名.getIndex() ,可这样调用获取颜色代号

第三个颜色的颜色。

008

BLACK

   

009

WHITE

   

010

RED

   

011

BRIGHT_GREEN

   

012

BLUE

   

013

YELLOW

   

014

PINK

   

015

TURQUOISE

   

016

DARK_RED

   

017

GREEN

   

018

DARK_BLUE

   

019

DARK_YELLOW

   

020

VIOLET

   

021

TEAL

   

022

GREY_25_PERCENT

   

023

GREY_50_PERCENT

   

024

CORNFLOWER_BLUE

   

025

MAROON

   

026

LEMON_CHIFFON

   

028

ORCHID

   

029

CORAL

   

030

ROYAL_BLUE

   

031

LIGHT_CORNFLOWER_BLUE

   

040

SKY_BLUE

   

041

LIGHT_TURQUOISE

   

042

LIGHT_GREEN

   

043

LIGHT_YELLOW

   

044

PALE_BLUE

   

045

ROSE

   

046

LAVENDER

   

047

TAN

   

048

LIGHT_BLUE

   

049

AQUA

   

050

LIME

   

051

GOLD

   

052

LIGHT_ORANGE

   

053

ORANGE

   

054

BLUE_GREY

   

055

GREY_40_PERCENT

   

056

DARK_TEAL

   

057

SEA_GREEN

   

058

DARK_GREEN

   

059

OLIVE_GREEN

   

060

BROWN

   

061

PLUM

   

062

INDIGO

   

063

GREY_80_PERCENT

   

064

AUTOMATIC

  

   

附生成源代码

 

import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;


public class ColorTest {

	public static void main(String[] args)   {
		
		short colorNum = 2;//每行显示的颜色的个数
		short width1 = 2000;//颜色序號宽度
		short width = 6000;//颜色名栏位的宽度
		
		XSSFWorkbook workbook = new XSSFWorkbook();
		
		CellStyle thStyle = workbook.createCellStyle();
	  
		XSSFSheet sheet = workbook.createSheet("IndexedColors遍历");
		
		Row row =null;
		Cell cell;
		
		short i,j,index=0;
		String text="";
		
		for(i=0;i<colorNum;i++){
			sheet.setColumnWidth((short) i*3 , width1 );
			sheet.setColumnWidth((short) i*3 + 1 , width );
		}

		
		for (IndexedColors c : IndexedColors.values()){
			
			 i=(short) (index/colorNum);
			 j=(short) (index%colorNum);
			 
			 thStyle = workbook.createCellStyle();
			 thStyle.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);  //设置前景填充样式  
			 thStyle.setFillForegroundColor(c.getIndex());
 
             row = j==0?sheet.createRow(i):row;//如果到了换行的时候row new一下 否则就当什么都没有发生
		     
//             text="";
//             text += (index + 1000 + "").substring(1,4) +"||";
//             text += (c.getIndex() + 1000 + "").substring(1,4) +"||";
//             text += c;
            
             row.createCell(3*j).setCellValue("  "+(c.getIndex() + 1000 + "").substring(1,4));
			 row.createCell(3*j+1).setCellValue(c+"");
			 
			 row.createCell(3*j+2).setCellStyle(thStyle); 
			 
			 index++;//计数
		}
			   
		 sheet = workbook.createSheet("30X"+colorNum+"颜色遍历");
		 
		 for( i=0;i<30;i++ ){
			 row = sheet.createRow(i); 
			 for(j=0;j<colorNum;j++){
				 
				 thStyle = workbook.createCellStyle();
				 thStyle.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);  //设置前景填充样式  
				 thStyle.setFillForegroundColor((short)(colorNum*i + j));
		
				 row.createCell(2*j).setCellValue((short)(colorNum*i + j));
				 row.createCell(2*j+1).setCellStyle(thStyle); 
			 }			 
		 }
         
		 FileOutputStream fileOut = null;
		  try {
				fileOut = new FileOutputStream("POI颜色大全.xlsx");
				workbook.write(fileOut);
				fileOut.close();
			} catch (Exception e) {
				System.out.println("保存xlsx的时候发生的异常");
				e.printStackTrace();
			}
 

	}

}

 

 

 

posted on 2013-09-02 10:04  xy2401  阅读(8588)  评论(0编辑  收藏  举报

导航