SXSSFWorkbook
获取对象
// 创建一个空的Excel表格Sheet页
String sheetName = "Sheet1";
//创建workbook
XSSFWorkbook sheetWorkbook = new XSSFWorkbook();
//新建文件
try(FileOutputStream fileOutputStream = new FileOutputStream(FILE_NAME)) {
sheetWorkbook.createSheet(sheetName);
sheetWorkbook.write(fileOutputStream);
} catch (Exception e) {
e.printStackTrace();
}
// 创建一个空的Excel表格
XSSFWorkbook excelWorkbook = new XSSFWorkbook(new FileInputStream(new File(FILE_NAME)));
// 表格对象
SXSSFWorkbook sxssfWorkbook = new SXSSFWorkbook(excelWorkbook, 100);
// sheet页对象
Sheet firstSheet = sxssfWorkbook.getSheetAt(0);
// 获取单元格样式对象
CellStyle titleStyle = sxssfWorkbook.createCellStyle();
设置单元格格式
设置列宽
firstSheet.setDefaultColumnWidth((short) 15);
冻结行列
注意,这里的数值从1开始。
第一个参数为列数,从左开始第一列为1;
第二个参数为行数,从上往下第一行为1.
// 只冻结2行
firstSheet.createFreezePane(0,2);
对齐
// 标题水平居中
titleStyle.setAlignment(HorizontalAlignment.CENTER);
// 标题垂直居中
titleStyle.setVerticalAlignment(VerticalAlignment.CENTER);
字体
// 字体加粗
Font font = sxssfWorkbook.createFont();
font.setBold(true);
// 字体大小
font.setFontHeight((short)800);
titleStyle.setFont(font);
表格背景颜色
// 设置填充方案
titleStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// 背景色
titleStyle.setFillForegroundColor(IndexedColors.LEMON_CHIFFON.index);
文章最后有颜色值对应颜色图片。
边框
titleStyle.setBorderLeft(BorderStyle.THIN);
titleStyle.setBorderRight(BorderStyle.THIN);
titleStyle.setBorderBottom(BorderStyle.THIN);
titleStyle.setBorderTop(BorderStyle.THIN);
注意:设置边框的时候只是为每个单元格添加边框,即使是多个基本单元格合并为一个大单元格,也要为每一个基本单元格设置边框。
此时可以采用for循环
for(int i =0;i<16;i++){
Cell titleCell = headTitleSecond.createCell(i);
// 设置标题文本
titleCell.setCellValue(title);
titleCell.setCellStyle(titleStyle);
}
单元格合并
// 标题合并单元格:第0行的第0列到第5列
CellRangeAddress region = new CellRangeAddress(0, 0, 0, 15);
firstSheet.addMergedRegion(region);