直插正题:
HSSFWorkbook 创建样式:
HSSFCellStyle style = workbook.createCellStyle();
一、设置背景色:
cellStyle.setFillForegroundColor((short) 10);// 设置背景色,颜色的索引还必须是 0x08 ~ 0x40 (8 ~ 64) 的数字
自定义颜色,如果不使用POI提供的默认颜色,就需要自定颜色索引:
HSSFPalette palette = workbook.getCustomPalette();
palette.setColorAtIndex((short) 9, (byte) (color.getRed()), (byte) (color.getGreen()), (byte) (color.getBlue()));
设置颜色的索引只能是 8 ~ 64,在此之外的索引无效,也不会报错。以下三种方式都可以设置成功 :
palette.setColorAtIndex((short)9, (byte) (0xff & 251), (byte) (0xff & 161), (byte) (0xff & 161));
palette.setColorAtIndex((short)10, (byte) (0x66), (byte) (0xcd), (byte) (0xaa));
palette.setColorAtIndex((short)11, (byte) (255), (byte) (165), (byte) (0));
然后使用颜色,如上例,可以用新的颜色索引,替换原有的颜色:
style.setFillForegroundColor((short) 9);
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); //设置前景填充样式,SOLID_FOREGROUND纯色使用前景颜色填充
cellStyle.setFillForegroundColor(HSSFColor.DARK_RED.index);//前景填充色
cellStyle.setFillBackgroundColor(HSSFColor.AQUA.index);//设置背景色
颜色类型是在HSSFColor里面定义的:
色 | 执行结果 |
---|---|
HSSFColor.ROYAL_BLUE | |
HSSFColor.TEAL | |
HSSFColor.LIME | |
HSSFColor.PALE_BLUE | |
HSSFColor.AQUA | |
HSSFColor.GREEN | |
HSSFColor.TURQUOISE | |
HSSFColor.DARK_BLUE | |
HSSFColor.CORNFLOWER_BLUE | |
HSSFColor.OLIVE_GREEN | |
HSSFColor.WHITE | |
HSSFColor.LIGHT_TURQUOISE | |
HSSFColor.LEMON_CHIFFON | |
HSSFColor.LIGHT_GREEN | |
HSSFColor.BLUE | |
HSSFColor.DARK_RED | |
HSSFColor.CORAL | |
HSSFColor.RED | |
HSSFColor.LIGHT_YELLOW | |
HSSFColor.SKY_BLUE | |
HSSFColor.BROWN | |
HSSFColor.SEA_GREEN | |
HSSFColor.INDIGO | |
HSSFColor.MAROON | |
HSSFColor.GREY_80_PERCENT | |
HSSFColor.GREY_25_PERCENT | |
HSSFColor.DARK_GREEN | |
HSSFColor.YELLOW | |
HSSFColor.GOLD | |
HSSFColor.GREY_40_PERCENT | |
HSSFColor.DARK_TEAL | |
HSSFColor.PINK | |
HSSFColor.ORCHID | |
HSSFColor.LIGHT_BLUE | |
HSSFColor.LIGHT_CORNFLOWER_BLUE | |
HSSFColor.BLACK | |
HSSFColor.DARK_YELLOW | |
HSSFColor.VIOLET | |
HSSFColor.LAVENDER | |
HSSFColor.ROSE | |
HSSFColor.BLUE_GREY | |
HSSFColor.LIGHT_ORANGE | |
HSSFColor.ORANGE | |
HSSFColor.GREY_50_PERCENT |
二、设置边框:
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
三、设置居中:
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中
cellStyle.setAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中
四、设置字体:
HSSFFont font = workbook.createFont();
font.setFontName("宋体");//设置字体
font.setFontHeightInPoints((short) 20);//设置字体大小
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
五、设置自动换行:
cellStyle.setWrapText(true);//设置自动换行
六、合并单元格:
Region region1 = new Region(0, (short) 0, 0, (short) 6);//参数1:行号 参数2:起始列号 参数3:行号 参数4:终止列号
sheet.addMergedRegion(region1);
七、公式:
操作 | 语法 |
---|---|
添加多个数值 | = SUM(Loc1:Locn) or = SUM(n1,n2,) |
计数 | = COUNT(Loc1:Locn) or = COUNT(n1,n2,) |
两个数的幂 | = POWER(Loc1,Loc2) or = POWER(number, power) |
多个数的最大值 | = MAX(Loc1:Locn) or = MAX(n1,n2,) |
乘积 | = PRODUCT(Loc1:Locn) or = PRODUCT(n1,n2,) |
阶乘 | = FACT(Locn) or = FACT(number) |
绝对数字 | = ABS(Locn) or = ABS(number) |
今天的日期 | =TODAY() |
转换成小写 | = LOWER(Locn) or = LOWER(text) |
平方根 | = SQRT(locn) or = SQRT(number) |
SXSSFWorkbook的设置与HSSFWorkbook设置一样,只是改HSSFCellStyle为CellStyle和HSSFPalette 为Palatte。
最后需要查看API的道友,可查看此链接:http://www.yiibai.com/apache_poi/apache_poi_cells.html