/**建立HSSFWorkbook对象(excel的文档对象)*/ HSSFWorkbook wkb = new HSSFWorkbook(); //用于设置单元格的显示样式 HSSFCellStyle cellstyle = (HSSFCellStyle) wkb.createCellStyle(); cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 设置居中 HSSFFont bigTitleHeaderFont = (HSSFFont) wkb.createFont(); bigTitleHeaderFont.setFontHeightInPoints((short) 16); //设置字体大小 bigTitleHeaderFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 字体加粗 cellstyle.setFont(bigTitleHeaderFont); HSSFCellStyle styleOne = wkb.createCellStyle(); HSSFFont fontOne = wkb.createFont(); fontOne.setColor(HSSFColor.GREEN.index);//绿色 styleOne.setFont(fontOne); 比较全面的POI Excel导出样式设置 //创建新的sheet对象(excel的表单) 建立底部菜单 HSSFSheet sheet = wkb.createSheet(); sheet.setColumnWidth(1, 30 * 256); //设置第二列的宽度 wkb.setSheetName(0, "XXXXX "); /** new CellRangeAddress(a,b,c,d) 参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列 */ sheet.addMergedRegion(new CellRangeAddress(0,1,0,18));//从第1行到第二行结束,从第1列开始到19列结束(合并单元格,下标从0开始) HSSFRow row0 = sheet.createRow(0); //在sheet里建立第一行(下标从0开始) HSSFCell cell2_0 = row0.createCell(0); cell2_0.setCellValue("XXXX"); //设置单元格内容 cell2_0.setCellStyle(cellstyle); //赋予样式 /* row0.createCell(0).setCellStyle(cellstyle); 连着写的话设置的样式无效 **/ ........ /**a,b,c,d泛指数字*/ sheet1.addMergedRegion(new CellRangeAddress(a,b,c,d)); HSSFRow row10 = sheet1.createRow(a); //在sheet里建立第(a+1)行 HSSFCell cell00_01 = row10.createCell(c); cell00_01.setCellValue("姓名: "); cell00_01.setCellStyle(oneCellstyle); sheet1.addMergedRegion(new CellRangeAddress(2,4,2,5)); HSSFCell cell01_02 = row10.createCell(2); cell01_02.setCellValue(""); cell01_02.setCellStyle(cellstyle); ...... //输出Excel文件 try { OutputStream output = response.getOutputStream(); response.reset(); String filename = "XXXX"; response.setContentType("application/x-download");//处理乱码问题 response.setCharacterEncoding("utf-8"); response.setHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("utf-8") , "iso8859-1") + ".xls"); wkb.write(output); output.close(); } catch (Exception e) { }