SXSSFWorkbook操作Excel表格
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);