poi版本3.17
Excel列宽
POI中Sheet列宽是通过字符个数来确定的,列宽单位为一个字符宽度的1/256
// 设置默认列宽,width为字符个数
sheet.setDefaultColumnWidth(int width)
// 设置第columnIndex+1列的列宽,单位为字符宽度的1/256
sheet.setColumnWidth(int columnIndex, int width)
// 设置第5列的列宽为20个字符宽度
sheet.setColumnWidth(4, 20*256)
Excel单元格格式样式(居中,字体,边框等)
HSSFCellStyle cellStyle = wb.createCellStyle();
一、设置背景色:
cellStyle.setFillForegroundColor((short) 13);// 设置背景色
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
二、设置边框:
cellStyle.setBorderBottom(BorderStyle.THIN); //下边框
cellStyle.setBorderLeft(BorderStyle.THIN);//左边框
cellStyle.setBorderTop(BorderStyle.THIN);//上边框
cellStyle.setBorderRight(BorderStyle.THIN);//右边框
三、设置居中:
//垂直居中
cellStyle.setVerticalAlignment(cellStyle.getVerticalAlignmentEnum().CENTER);
//水平居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);
四、设置字体:
HSSFFont font = wb.createFont();
font.setFontName("黑体");
font.setFontHeightInPoints((short) 16);//设置字体大小
HSSFFont font2 = wb.createFont();
font2.setFontName("仿宋_GB2312");
font2.setBold(true);//粗体显示
font2.setFontHeightInPoints((short) 12);
cellStyle.setFont(font);//选择需要用到的字体格式
五、设置列宽:
sheet.setColumnWidth(0, 3766);
//第一个参数代表列id(从0开始),第2个参数代表宽度值 参考 :"2012-08-10"的宽度为2500
六、设置自动换行:
cellStyle.setWrapText(true);//设置自动换行
七、合并单元格:
Region region1 = new Region(0, (short) 0, 0, (short) 6);//参数1:行号 参数2:起始列号 参数3:行号 参数4:终止列号
//此方法在POI3.8中已经被废弃,建议使用下面一个
或者用
CellRangeAddress region1 = new CellRangeAddress(rowNumber, rowNumber, (short) 0, (short) 11);
//参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
但应注意两个构造方法的参数不是一样的,具体使用哪个取决于POI的不同版本。
sheet.addMergedRegion(region1);