赞
踩
// 创建一个写出的单元格样式对象 WriteCellStyle headWriteCellStyle = new WriteCellStyle(); // 背景设置为白色,也可设置为其他颜色 headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex()); // 设置表头字体 WriteFont headWriteFont = new WriteFont(); // 设置字体大小为12 headWriteFont.setFontHeightInPoints((short)12); // 设置加粗 headWriteFont.setBold(true); // 如需设置斜体 // headWriteFont.setItalic(BooleanEnum.TRUE.getBooleanValue()); // 把字体对象设置到单元格样式对象中 headWriteCellStyle.setWriteFont(headWriteFont); //设置表头居中 headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
// 创建一个写出的单元格样式对象 WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); // 设置内容字体 WriteFont contentWriteFont= new WriteFont(); // 设置内容字体大小为12 contentWriteFont.setFontHeightInPoints((short) 12); // 把字体对象设置到单元格样式对象中 contentWriteCellStyle.setWriteFont(contentWriteFont); // 设置水平居中 contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER); // 设置垂直居中 contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 边框设置 // BorderStyle.THIN:细线 // BorderStyle.THICK:粗线 // BorderStyle.MEDIUM: 中线 // BorderStyle.MEDIUM_DASHED:中虚线 // 设置单元格左边框为细线 contentWriteCellStyle.setBorderLeft(BorderStyle.THIN); // 设置单元格上边框为细线 contentWriteCellStyle.setBorderTop(BorderStyle.THIN); // 设置单元格右边框为细线 contentWriteCellStyle.setBorderRight(BorderStyle.THIN); // 设置单元格下边框为细线 contentWriteCellStyle.setBorderBottom(BorderStyle.THIN); //设置 自动换行 contentWriteCellStyle.setWrapped(true);
需求:导出的Excel有很多列,打印出来会有很多页纸,需要每页纸都有表头
导出的Excel,下滑需要表头固定
public class CustomSheetWriteHandler implements SheetWriteHandler {
public int colSplit = 0, rowSplit = 1, leftmostColumn = 0, topRow = 1;
@Override
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
//得到Sheet
Sheet sheet = writeSheetHolder.getSheet();
// 设置每页都有表头
sheet.setRepeatingRows(CellRangeAddress.valueOf("1:1"));
// 设置冻结窗格第一行
sheet.createFreezePane(colSplit, rowSplit, leftmostColumn, topRow);
}
}
HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); // 输出 Excel到具体地址 String filePath = "/home/ssp_backend/exportFile/"+ System.currentTimeMillis()+".xlsx"; // String filePath = "D:\\data\\"+ System.currentTimeMillis()+".xlsx"; File tempFile = new File(filePath); EasyExcel.write(tempFile, Demo.class) .registerWriteHandler(horizontalCellStyleStrategy) .registerWriteHandler(new CustomSheetWriteHandler()) .sheet("sheet").doWrite(demoList); // 输出 Excel // Class<T> head EasyExcel.write(response.getOutputStream(), head) .autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理 .registerWriteHandler(horizontalCellStyleStrategy) .registerWriteHandler(new CustomSheetWriteHandler()) .sheet(sheetName).doWrite(demoList); // 设置 header 和 contentType。写在最后的原因是,避免报错时,响应 contentType 已经被修改了 response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8")); response.setContentType("application/vnd.ms-excel;charset=UTF-8");
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。