1 packagecom.base.utils;2
3 importjava.io.IOException;4 importjava.io.OutputStream;5 importjava.text.DecimalFormat;6 importjava.text.SimpleDateFormat;7 importjava.util.Date;8 importjava.util.LinkedHashMap;9 importjava.util.List;10
11 importjavax.servlet.http.HttpServletRequest;12 importjavax.servlet.http.HttpServletResponse;13
14 importorg.apache.poi.hssf.usermodel.HSSFCell;15 importorg.apache.poi.hssf.usermodel.HSSFRow;16 importorg.apache.poi.hssf.usermodel.HSSFSheet;17 importorg.apache.poi.hssf.usermodel.HSSFWorkbook;18 importorg.apache.poi.ss.usermodel.BorderStyle;19 importorg.apache.poi.ss.usermodel.CellStyle;20 importorg.apache.poi.ss.usermodel.Font;21 importorg.apache.poi.ss.usermodel.HorizontalAlignment;22 importorg.apache.poi.ss.usermodel.IndexedColors;23 importorg.apache.poi.ss.usermodel.VerticalAlignment;24 importorg.apache.poi.ss.util.CellRangeAddress;25 importorg.slf4j.Logger;26 importorg.slf4j.LoggerFactory;27
28 importcom.base.utils.sysenum.ExcelExportEnum;29
30 public classExcelExportUtil {31
32 protected static Logger logger = LoggerFactory.getLogger(ExcelExportUtil.class);33
34 private static CellStyle titleStyle; //标题行样式
35 private static Font titleFont; //标题行字体
36 private static CellStyle headStyle; //表头行样式
37 private static Font headFont; //表头行字体
38 private static CellStyle contentStyle; //内容行样式
39 private static Font contentFont; //内容行字体
40
41 /**
42 * 初始化HSSFWorkbook43 *44 * @Method_Name : init45 *@returnHSSFWorkbook46 */
47 private staticHSSFWorkbook init() {48 HSSFWorkbook wb = newHSSFWorkbook();49
50 titleFont =wb.createFont();51 titleStyle =wb.createCellStyle();52 headStyle =wb.createCellStyle();53 headFont =wb.createFont();54 contentStyle =wb.createCellStyle();55 contentFont =wb.createFont();56
57 initTitleCellStyle();58 initTitleFont();59 initHeadCellStyle();60 initHeadFont();61 initContentCellStyle();62 initContentFont();63 returnwb;64 }65
66 /**
67 * 根据数据集合生成excel文件并下载68 *69 * @Method_Name : downloadExcel70 *@paramexcelExportEnum excel文件名称,工作簿和生成的内容标题都用这个名称71 *@parammap 列名与集合中实体类属性的对应关系72 *@paramlist 需要导出的数据集合73 *@return
74 *@throwsException75 *@return
76 */
77 public static void downloadExcel(HttpServletRequest request, HttpServletResponse response,ExcelExportEnum excelExportEnum, LinkedHashMap map, List> list) throwsException {78
79 //第一步,创建一个webbook,对应一个Excel文件
80 HSSFWorkbook wb =init();81 //第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
82 HSSFSheet sheet =wb.createSheet(excelExportEnum.getTypeName());83
84 int columnNum =map.keySet().size();85 String[] colNames = (St