导出excel 复杂的 合并单元格
private void exportExcel(List<IuDocStatisticsExcelVo> iuDocStatisticsVos, String startTime, String endTime, HttpServletResponse response) throws UnsupportedEncodingException, ParseException {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition",
"attachment;filename*=utf-8''" + URLEncoder.encode("皖医互通工作站周报" + "(" + startTime + "-" + endTime + ")", "UTF-8") + ".xlsx");
ExcelWriter writer = ExcelUtil.getWriter();
writer.merge(0, 0, 0, 12, "皖医互通工作站每周汇报" + "(" + startTime + "-" + endTime + ")", false);
writer.merge(1, 2, 0, 0, "序号", false);
writer.merge(1, 2, 1, 1, "医院名称", false);
writer.merge(1, 1, 2, 4, "工作站", false);
writer.merge(1, 1, 5, 8, "历史提醒", false);
writer.merge(1, 1, 9, 12, "重复提醒", false);
writer.passRows(2);
writer.setRowHeight(0, 50);
writer.setRowHeight(1, 30);
writer.setColumnWidth(0, 10);
writer.setColumnWidth(1, 18);
writer.setColumnWidth(2, 13);
writer.setColumnWidth(3, 13);
writer.setColumnWidth(4, 16);
writer.setColumnWidth(5, 13);
writer.setColumnWidth(6, 18);
writer.setColumnWidth(7, 13);
writer.setColumnWidth(8, 18);
writer.setColumnWidth(9, 13);
writer.setColumnWidth(10, 18);
writer.setColumnWidth(11, 13);
writer.setColumnWidth(12, 18);
writer.addHeaderAlias("row", "序号");
writer.addHeaderAlias("hospitalName", "医院名称");
writer.addHeaderAlias("workstationNum", "工作站数量");
writer.addHeaderAlias("workActivityRateWeek", "本周活跃率");
writer.addHeaderAlias("workActivityRateLastWeek", "活跃率较上周比较");
writer.addHeaderAlias("historyNoticeTimes", "提醒次数");
writer.addHeaderAlias("historyNoticeRateWeek", "提醒次数较上周比较");
writer.addHeaderAlias("historyViewNum", "查看次数");
writer.addHeaderAlias("historyViewRateWeek", "查看次数较上周比较");
writer.addHeaderAlias("repeatNoticeTimes", "提醒次数 ");
writer.addHeaderAlias("repeatNoticeRateWeek", "提醒次数较上周比较 ");
writer.addHeaderAlias("repeatViewNum", "查看次数 ");
writer.addHeaderAlias("repeatViewRateWeek", "查看次数较上周比较 ");
CellStyle headCellStyle = writer.getHeadCellStyle();
headCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
headCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
writer.write(iuDocStatisticsVos, true);
try {
writer.flush(response.getOutputStream(), true);
} catch (IOException e) {
e.printStackTrace();
} finally {
writer.close();
}
}