若依框架导出excel模板含第二标题怎么实现
1、比如实现如图,有2个标题的情况。若依没有可直接实现的方法,需要新增方法。
2.实现方式:
在ExcelUtil类新增以下方法及代码:
/** * 标题2 */ private String title2; public void exportExcel(HttpServletResponse response, List<T> list, String sheetName, String title,String title2) { response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); this.init2(list, sheetName, title,title2, Type.EXPORT); exportExcel(response); } public void init2(List<T> list, String sheetName, String title, String title2, Type type) { if (list == null) { list = new ArrayList<T>(); } this.list = list; this.sheetName = sheetName; this.type = type; this.title = title; this.title2 = title2; createExcelField(); createWorkbook(); createTitle(); createTitle2(); createSubHead(); } /** * 创建excel第二行标题 */ public void createTitle2() { if (StringUtils.isNotEmpty(title2)) { subMergedFirstRowNum++; subMergedLastRowNum++; int titleLastCol = this.fields.size() - 1; if (isSubList()) { titleLastCol = titleLastCol + subFields.size() - 1; } Row titleRow = sheet.createRow(rownum == 1 ? rownum++ : 1); titleRow.setHeightInPoints(30); Cell titleCell = titleRow.createCell(0); titleCell.setCellStyle(styles.get("data")); titleCell.setCellValue(title2); sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), titleRow.getRowNum(), titleRow.getRowNum()-1, titleLastCol)); } }
3.调用即可:
ExcelUtil<ClassChargeVo> util = new ExcelUtil<ClassChargeVo>(ClassChargeVo.class); String title1 = "班级信息"; String title2 = getLoginUser().getUser().getNickName() +"-"+ getLoginUser().getUser().getUserId(); util.exportExcel(response, list, "收费excel导出",title ,title2 );
本文原创,转载必追究版权。