java 导出excel表格
2016-10-09 15:08
218 查看
工具类 import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.XSSFFont; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; /** * @author Administrator * */ public class ExportUtil { private XSSFWorkbook wb = null; private XSSFSheet sheet = null; /** * @param wb * @param sheet */ public ExportUtil(XSSFWorkbook wb, XSSFSheet sheet) { this.wb = wb; this.sheet = sheet; } /** * 合并单元格后给合并后的单元格加边框 * * @param region * @param cs */ public void setRegionStyle(CellRangeAddress region, XSSFCellStyle cs) { int toprowNum = region.getFirstRow(); for (int i = toprowNum; i <= region.getLastRow(); i++) { XSSFRow row = sheet.getRow(i); for (int j = region.getFirstColumn(); j <= region.getLastColumn(); j++) { XSSFCell cell = row.getCell(j);// XSSFCellUtil.getCell(row, // (short) j); cell.setCellStyle(cs); } } } /** * 设置表头的单元格样式 * * @return */ public XSSFCellStyle getHeadStyle() { // 创建单元格样式 XSSFCellStyle cellStyle = wb.createCellStyle(); // 设置单元格的背景颜色为淡蓝色 cellStyle.setFillForegroundColor(HSSFColor.PALE_BLUE.index); cellStyle.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND); // 设置单元格居中对齐 cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER); // 设置单元格垂直居中对齐 cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER); // 创建单元格内容显示不下时自动换行 cellStyle.setWrapText(true); // 设置单元格字体样式 XSSFFont font = wb.createFont(); // 设置字体加粗 font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD); font.setFontName("宋体"); font.setFontHeight((short) 200); cellStyle.setFont(font); // 设置单元格边框为细线条 cellStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN); cellStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN); cellStyle.setBorderRight(XSSFCellStyle.BORDER_THIN); cellStyle.setBorderTop(XSSFCellStyle.BORDER_THIN); return cellStyle; } /** * 设置表体的单元格样式 * * @return */ public XSSFCellStyle getBodyStyle() { // 创建单元格样式 XSSFCellStyle cellStyle = wb.createCellStyle(); // 设置单元格居中对齐 cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER); // 设置单元格垂直居中对齐 cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER); // 创建单元格内容显示不下时自动换行 cellStyle.setWrapText(true); // 设置单元格字体样式 XSSFFont font = wb.createFont(); // 设置字体加粗 font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD); font.setFontName("宋体"); font.setFontHeight((short) 200); cellStyle.setFont(font); // 设置单元格边框为细线条 cellStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN); cellStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN); cellStyle.setBorderRight(XSSFCellStyle.BORDER_THIN); cellStyle.setBorderTop(XSSFCellStyle.BORDER_THIN); return cellStyle; } }
业务层
<pre name="code" class="html">@RequestMapping(value="reportExcel") public void reportExcel(HttpServletResponse response){ //解决浏览器跨域问题 response.setHeader("Access-Control-Allow-Origin", "*"); XSSFWorkbook workBook = new XSSFWorkbook(); XSSFSheet sheet = workBook.createSheet("用户管理系统统计"); ExportUtil exportUtil = new ExportUtil(workBook, sheet); XSSFCellStyle headStyle = exportUtil.getHeadStyle(); XSSFCellStyle bodyStyle = exportUtil.getBodyStyle(); XSSFRow headRow = sheet.createRow(0); XSSFCell cell = null; String[] title = {"编号","电话","用户姓名","地址","生日","职业","支付宝","圈子","状态","注册时间"}; for (int i = 0; i < title.length; i++) { cell = headRow.createCell(i); cell.setCellStyle(headStyle); cell.setCellValue(title[i]); } <span style="white-space:pre"> </span>//用户的信息 List<User> list = userService.selectUserRec(); if(list != null && list.size() > 0){ for(int i=0;i<list.size();i++){ User user = list.get(i); XSSFRow bodyRow = sheet.createRow(i + 1); cell = bodyRow.createCell(0); cell.setCellStyle(bodyStyle); cell.setCellValue(user.getRownum()); cell = bodyRow.createCell(1); cell.setCellStyle(bodyStyle); cell.setCellValue(user.getTelephone_col()); cell = bodyRow.createCell(2); cell.setCellStyle(bodyStyle); cell.setCellValue(user.getRealname_col()); cell = bodyRow.createCell(3); cell.setCellStyle(bodyStyle); cell.setCellValue(user.getLocation_col()); cell = bodyRow.createCell(4); cell.setCellStyle(bodyStyle); cell.setCellValue(user.getBirthday_col()); cell = bodyRow.createCell(5); cell.setCellStyle(bodyStyle); cell.setCellValue(user.getProfessional_col()); cell = bodyRow.createCell(6); cell.setCellStyle(bodyStyle); cell.setCellValue(user.getAccount_col()); cell = bodyRow.createCell(7); cell.setCellStyle(bodyStyle); cell.setCellValue(user.getCircle()); cell = bodyRow.createCell(8); cell.setCellStyle(bodyStyle); if(user.getState_col().equals("Y") || user.getState_col()=="Y"){ cell.setCellValue("启用"); }else{ cell.setCellValue("禁用"); } cell = bodyRow.createCell(9); cell.setCellStyle(bodyStyle); cell.setCellValue(DateAndString.getString(user.getCreateTime())); } } String fileName="用户信息汇总"+System.currentTimeMillis()+".xlsx"; try { OutputStream os = response.getOutputStream(); response.addHeader("Content-disposition", "attachment;filename="+ new String(fileName.getBytes("gb2312"), "ISO8859-1")); response.setContentType("application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); workBook.write(os); os.flush(); os.close(); os.flush(); os.close(); } catch (Exception e) { e.printStackTrace(); } }
相关文章推荐
- jsp页面导出用jxl方式导出数据到excel表格并下载保存(第二种直接用java类实现)
- 天易26----java导出excel表格(支持wps和office excel)
- Java导出Excel表格
- Java数据导出为Excel表格
- java导出Excel表格
- Java导入导出Excel表格
- java连接MongoDB查询导出为excel表格
- Java将数据导出到excel表格中
- java中导入导出Excel表格(jxl)
- Java JTable 表格 获取存储路径,文件名 ,导出excel表格
- java实现从数据库中导出Excel表格
- Java导出excel表格
- 【Java】导出excel表格
- java中导入导出Excel表格(hssf)
- 【Java】IO操作之将Jtable数据导出为Excel表格
- java中导入导出Excel表格(jxl的API应用)
- 【Java】导出excel表格
- Java_Excel表格导入导出_后台部分
- java中使用jxl导出Excel表格
- java导出Excel表格