标签:
涉及到的样式都在代码中有说明:
1 package com.it.poiTest; 2 3 import java.io.FileNotFoundException; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 7 import org.apache.poi.hssf.util.HSSFColor; 8 import org.apache.poi.sl.usermodel.Sheet; 9 import org.apache.poi.ss.usermodel.Cell; 10 import org.apache.poi.ss.usermodel.Color; 11 import org.apache.poi.ss.usermodel.IndexedColors; 12 import org.apache.poi.ss.usermodel.Row; 13 import org.apache.poi.ss.util.CellRangeAddress; 14 import org.apache.poi.xssf.usermodel.XSSFCellStyle; 15 import org.apache.poi.xssf.usermodel.XSSFColor; 16 import org.apache.poi.xssf.usermodel.XSSFSheet; 17 import org.apache.poi.xssf.usermodel.XSSFWorkbook; 18 19 public class MoreStyleCell { 20 public static void main(String[] args) { 21 XSSFWorkbook workbook = new XSSFWorkbook(); 22 try { 23 FileOutputStream out = new FileOutputStream("moreStyleWrokNook.xlsx"); 24 XSSFSheet sheet = workbook.createSheet("stylesheet"); 25 26 /** 27 * 简单设置行高 28 */ 29 //第一行 30 Row row0 = sheet.createRow(0); 31 row0.setHeight((short) (500)); 32 //第6列 33 Cell cell = row0.createCell(5); 34 cell.setCellValue("height=500"); 35 36 37 /** 38 * 测试合并单元格之后的各个位置 39 */ 40 //合并单元格 参数1:第一行 / 参数2:最后一行 / 参数3:第一列 / 参数4:最后一列 [在此范围之内] 41 sheet.addMergedRegion(new CellRangeAddress(1,3,1,4)); 42 Row row1 = sheet.createRow(1); 43 Cell cell1 = row1.createCell(0); 44 cell1.setCellValue("第二行 第一列"); 45 Cell cell2 = row1.createCell(1); 46 cell2.setCellValue("第二行,第二列。应该是合并单元格"); 47 //既然合并了单元格,查看一下1.2在什么位置 【证明并没有出现】 48 Cell cell3 = row1.createCell(2); 49 cell3.setCellValue("第二行,第三列"); 50 51 Cell cell4 = row1.createCell(5); 52 cell4.setCellValue("第二行,第五列,也就是合并单元格之后的第三列"); 53 54 /** 55 * 测试cellstyle的设置--单元格居中设置以及单元格内文字换行设置 56 */ 57 row0 = sheet.createRow(4); 58 row0.setHeight((short)1000); 59 cell1 = row0.createCell(0); 60 cell1.setCellValue("第五行 height=1000"); 61 //设置某一列的宽度 62 sheet.setColumnWidth(0, 9000); 63 XSSFCellStyle style1 = workbook.createCellStyle(); 64 //设置style---cell中水平的对齐方式 65 style1.setAlignment(XSSFCellStyle.ALIGN_CENTER); 66 //设置style---cell中垂直方向的对齐方式 67 style1.setVerticalAlignment(XSSFCellStyle.VERTICAL_TOP); 68 //给某个确定的cell设置样式 69 cell1.setCellStyle(style1); 70 //为cell单元格追加内容 71 //获取到cell内的值【getRichStringCellValue获取富文本类型的值,除了小数类型的使用这个方法获取getNumericCellValue,其余类型均可以使用此方法获取toString之后就可以转化为其他的数据类型】 72 String cell1Value = cell1.getRichStringCellValue().toString(); 73 //cell1.getNumericCellValue(); 74 //加上\n之后无法自动换行 75 cell1.setCellValue(cell1Value+"\n"+"水平居中"+"\n"+"垂直居上"); 76 //设置style自动换行 这样就可以自动换行了 77 style1.setWrapText(true); 78 cell1.setCellValue(cell1Value+"\n"+"水平居中"+"\n"+"垂直居上"+"\n"+"自动换行"); 79 System.out.println(cell1Value); 80 81 /** 82 * style样式设置--设置border的边框样式以及颜色 83 */ 84 row0 = sheet.createRow(5); 85 row0.setHeight((short)1000); 86 cell1 = row0.createCell(5); 87 cell1.setCellValue(6.6); 88 XSSFCellStyle style2 = workbook.createCellStyle(); 89 style2.setBorderBottom(XSSFCellStyle.BORDER_THIN); 90 style2.setBorderLeft(XSSFCellStyle.BORDER_HAIR); 91 style2.setBorderRight(XSSFCellStyle.BORDER_DOTTED); 92 style2.setBorderTop(XSSFCellStyle.BORDER_NONE); 93 //颜色三种方式 给出 方式1: 94 style2.setBottomBorderColor(IndexedColors.BLUE.getIndex()); 95 //方式2 96 XSSFColor color = new XSSFColor(); 97 byte[] a = {127,0,13}; 98 //color.setRGB(a); 99 color.setARGBHex("FF2906"); 100 style2.setLeftBorderColor(color); 101 //方式3 102 style2.setRightBorderColor(HSSFColor.BLACK.index); 103 cell1.setCellStyle(style2); 104 105 /** 106 * style设置---设置单元格的背景色与填充效果 107 */ 108 row0 = sheet.createRow(6); 109 row0.setHeight((short) 1200); 110 cell1 = row0.createCell(6); 111 cell1.setCellValue(7.7); 112 XSSFCellStyle style3 = workbook.createCellStyle(); 113 style3.setFillBackgroundColor(HSSFColor.RED.index); 114 //设置单元格的填充效果 115 style3.setFillPattern(XSSFCellStyle.LEAST_DOTS); 116 cell1.setCellStyle(style3); 117 118 119 /** 120 * style设置--设置单元格的前置填充颜色 121 */ 122 row0 = sheet.createRow(7); 123 row0.setHeight((short) 1200); 124 cell1 = row0.createCell(7); 125 cell1.setCellValue(8.8); 126 XSSFCellStyle style4 = workbook.createCellStyle(); 127 style4.setFillForegroundColor(IndexedColors.GREEN.index); 128 style4.setFillPattern(XSSFCellStyle.ALIGN_FILL); 129 cell1.setCellStyle(style4); 130 131 132 workbook.write(out); 133 134 } catch (FileNotFoundException e) { 135 e.printStackTrace(); 136 } catch (IOException e) { 137 e.printStackTrace(); 138 } 139 } 140 }
样式最后的图例:
【POI xlsx】使用POI对xlsx的单元格样式进行设置
标签:
原文地址:http://www.cnblogs.com/sxdcgaq8080/p/5664053.html