POI常用方法汇总
- 创建文件名
String dateTime = DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss");
String fileName = "fileName" + dateTime + ".xlsx";
- 创建对象及sheet
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("fileName");
- 列宽
// 设置默认列宽,width为字符个数
sheet.setDefaultColumnWidth(12);
// 设置第columnIndex+1列的列宽,单位为字符宽度的1/256
sheet.setColumnWidth(int columnIndex, int width)
// 设置第1列为12个字符宽
sheet.setColumnWidth(0, 12 * 256);
- 合并单元格
CellRangeAddress tableHead = new CellRangeAddress(int firstRow , int lastRow, int firstCol, int lastCol);
sheet.addMergedRegion(tableHead);
// 标题合并,第一行,第1-16列合并
CellRangeAddress tableHead = new CellRangeAddress(0, 0, 0, 15);
- 合并单元格的边框。
RegionUtil.setBorderTop(BorderStyle.THIN, tableHead, sheet);
RegionUtil.setBorderRight(BorderStyle.THIN, tableHead, sheet);
RegionUtil.setBorderBottom(BorderStyle.THIN, tableHead, sheet);
RegionUtil.setBorderRight(BorderStyle.THIN, tableHead, sheet);
- 字体
HSSFFont fontTitle = wb.createFont();
// 粗体
fontTitle.setBold(true);
// 字体
fontTitle.setFontName("宋体");
// 字号
fontTitle.setFontHeightInPoints((short) 11);
// 颜色
fontTitle.setColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
- 居中
titleStyle.setAlignment(HorizontalAlignment.CENTER);
titleStyle.setVerticalAlignment(VerticalAlignment.CENTER);
- 单个单元格边框
titleStyle.setBorderTop(BorderStyle.DOUBLE);
titleStyle.setBorderRight(BorderStyle.THICK);
titleStyle.setBorderBottom(BorderStyle.DASH_DOT);
titleStyle.setBorderLeft(BorderStyle.MEDIUM);
// 边框颜色
titleStyle.setBottomBorderColor(IndexedColors.BLUE.getIndex());
- 背景色
headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
headerStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
- 冻结
// 冻结前两列
sheet.createFreezePane( 2, 0, 2, 0 );
说明:
第一个参数表示要冻结的列数;
第二个参数表示要冻结的行数,这里只冻结列所以为0;
第三个参数表示右边区域可见的首列序号,从1开始计算;
第四个参数表示下边区域可见的首行序号,也是从1开始计算,这里是冻结列,所以为0;