POI设置Excel单元格样式POI中可能会⽤到⼀些需要设置EXCEL单元格格式的操作⼩结:
先获取⼯作薄对象:
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFCellStyle cellStyle = wb.createCellStyle();
⼀、设置背景⾊:
cellStyle.tFillForegroundColor((short) 13);// 设置背景⾊
cellStyle.tFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
⼆、设置边框:
cellStyle.tBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.tBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
桀骜不驯怎么读
cellStyle.tBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.tBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
yer// 设置单元格边框颜⾊
va是什么意思
cellStyle.tBottomBorderColor(HSSFColor.RED.index);
cellStyle.tTopBorderColor(HSSFColor.GREEN.index);
cellStyle.tLeftBorderColor(HSSFColor.BLUE.index);
设置单元格边框样式
CellStyle.BORDER_DOUBLE 双边线
CellStyle.BORDER_THIN 细边线
CellStyle.BORDER_MEDIUM 中等边线
click2pay
CellStyle.BORDER_DASHED 虚线边线
CellStyle.BORDER_HAIR ⼩圆点虚线边线
CellStyle.BORDER_THICK 粗边线
三、设置居中:
英语学习网址cellStyle.tAlignment(CellStyle.ALIGN_CENTER);//⽔平居中
cellStyle.tVerticalAlignment(CellStyle.VERTICAL_CENTER);//垂直居中
// 设置单元格内容⽔平对其⽅式
// HSSFCellStyle.ALIGN_CENTER 居中对齐
// HSSFCellStyle.ALIGN_LEFT 左对齐
// HSSFCellStyle.ALIGN_RIGHT 右对齐
// 设置单元格内容垂直对其⽅式
// HSSFCellStyle.VERTICAL_TOP 上对齐
/
/ HSSFCellStyle.VERTICAL_CENTER 中对齐
// HSSFCellStyle.VERTICAL_BOTTOM 下对齐railroad
四、设置字体:
HSSFFont font = wb.createFont();
font.tFontName("⿊体");
font.tFontHeightInPoints((short) 13);//设置字体⼤⼩
font.tItalic(true); // 设置字体为斜体字
font.tColor(Font.COLOR_RED); // 将字体设置为“红⾊”
font.tUnderline(Font.U_DOUBLE); // 添加(Font.U_SINGLE单条下划线/Font.U_DOUBLE双条下划线)
// font.tStrikeout(true); // 是否添加删除线
HSSFFont font2 = wb.createFont();
recordablefont2.tFontName("宋体");
font2.tBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显⽰
font2.tFontHeightInPoints((short) 12);
cellStyle.tFont(font);//选择需要⽤到的字体格式
五、设置整列的样式
sheet.tDefaultColumnStyle(short column, CellStyle style)
六、设置⾃动换⾏:
cellStyle.tWrapText(true);//设置⾃动换⾏
七、合并单元格:
//参数1:⾏号参数2:起始列号参数3:⾏号参数4:终⽌列号
Region region1 = new Region(0, (short) 0, 0, (short) 6);犬养毅
keep your shirt on
/
/此⽅法在POI3.8中已经被废弃,建议使⽤下⾯⼀个
注意导⼊的jar包:import org.apache.poi.ss.util.CellRangeAddress
//参数1:起始⾏参数2:终⽌⾏参数3:起始列号参数4:终⽌列号
CellRangeAddress region1 = new CellRangeAddress(rowNumber, rowNumber, (short) 0, (short) 11);
sheet.addMergedRegion(region1);
⼋、设置⾏的⾼度
在Excel中,每⼀⾏的⾼度是要求⼀致的,所以设置单元格的⾼度,其实就是设置⾏的⾼度,所以相关的属性也应该在HSSFRow上,它就是HSSFRow.Height和HeightInPoints,这两个属性的区别在于HeightInPoints的单位是点,⽽Height的单位是1/20个点,所以Height的值永远是HeightInPoints的20倍。
Row sizeRow = ateRow(6);
sizeRow.tHeightInPoints(30); // 设置⾏的⾼度
/
/或者
sizeRow.tHeight((short) (40*20)); // 设置⾏的⾼度
九、设置和读取列宽
SetColumnWidth的第⼆个参数要乘以256,这是怎么回事呢?其实,这个参数的单位是1/256个字符宽度,也就是说,这⾥是把B列的宽度设置为了100个字符。
//第⼀个参数代表列id(从0开始),第2个参数代表宽度值
sheet.tColumnWidth(0, 100*256);
//读取列宽
int col1width = sheet1.GetColumnWidth(1);//参数列的序号
⼗、设置默认的列宽和⾏⾼
⼀旦设置了这些属性,如果某⼀⾏或者某⼀列没有设置宽度,就会使⽤默认宽度或⾼度。
//设置默认列宽和⾏⾼
sheet.tDefaultColumnWidth(25);
//sheet.tDefaultRowHeight((short) (40*20));
sheet.tDefaultRowHeightInPoints(20);
⼯具⽅法:
// 设置列宽()
public static void tColumnWidth(HSSFSheet sheet, int colNum) {
for (int i = 0; i < colNum; i++) {
int v = 0;
v = und(Float.parFloat("20.0") * 267.5F);
sheet.tColumnWidth(i, v);
}
}
//设置⾏的字体和样式
public void tCellStyle(HSSFWorkbook workbook,HSSFCell cell){
// 设置样式
HSSFCellStyle cellStyle = ateCellStyle();
// 设置字体居中
cellStyle.tAlignment(HSSFCellStyle.ALIGN_CENTER);
// 设置字体
HSSFFont font = ateFont();
font.tFontName("宋体");
font.tFontHeightInPoints((short) 13);
cellStyle.tFont(font);
cell.tCellStyle(cellStyle);
}
参考:
大洋洲英文 POI的API: