Java导出Excel文件
1 /** 2 * 导出 用get请求 3 * @param response 4 * @param 5 * @throws IOException 6 */ 7 @RequestMapping(value = "/download") 8 public void download(HttpServletResponse response,HttpServletRequest request) throws IOException { 9 10 int quality = UtilReq.parseInt(request.getParameter("quality"), -1); 11 String status = UtilReq.parseString(request.getParameter("status"),""); 12 String mobile = UtilReq.parseString(request.getParameter("mobile"),""); 13 long agentUid = UtilReq.parseLong(request.getParameter("agentUid"),0l); 14 HSSFWorkbook workbook = aritstService.download(quality,status,mobile,agentUid); 15 16 //设置要导出的文件的名字 17 String fileName=""; 18 Date now = new Date(); 19 20 fileName = "艺人数据" + UtilDate.formatDate2Str(now,"yyyy年MM月dd日HH时mm分ss秒") + ".xls"; 21 22 fileName = new String(fileName.getBytes("gbk"), "iso-8859-1"); 23 response.setContentType("application/octet-stream"); 24 response.setHeader("Content-disposition", "attachment;filename=" + fileName); 25 response.flushBuffer(); 26 workbook.write(response.getOutputStream()); 27 }
1 /** 2 * 导出 3 * @param quality 4 * @param status 5 * @param mobile 6 * @param agentUid 7 * @return 8 */ 9 public HSSFWorkbook download(int quality, String status, String mobile, long agentUid) { 10 //创建 11 HSSFWorkbook wb = new HSSFWorkbook(); 12 //headers表示excel表中第一行的表头 13 String[] headers = {"姓名","邀请码","所属经纪人","经纪人手机号", "总收入金额", "接单数", "成单数","满意度","优质艺人"}; 14 //创建一个只有头信息的空表 15 HSSFSheet sheet = null; 16 sheet = wb.createSheet("艺人数据"); 17 18 //headers表示excel表中第一行的表头 19 HSSFRow row = sheet.createRow(0); 20 21 //在excel表中添加表头 22 for(int i=0;i<headers.length;i++){ 23 HSSFCell cell = row.createCell(i); 24 HSSFRichTextString text = new HSSFRichTextString(headers[i]); 25 cell.setCellValue(text); 26 } 27 28 //查询艺人列表,根据筛选条件 29 List<Integer> statusList = null; 30 if ("".equals(status)){ 31 status = "1,2"; 32 } 33 if (StringUtils.isNotEmpty(status)) { 34 statusList = new ArrayList<>(); 35 String[] statuss = status.split(","); 36 for (String statu : statuss) { 37 statusList.add(Integer.parseInt(statu)); 38 } 39 } 40 //需要导出的数据 41 List<Aritst> aritsts = aritstDao.selectArtistByAgentAndMobile(statusList, mobile, agentUid,quality, null,null,null); 42 43 int rowNum = 1; 44 if (null != aritsts) { 45 //在表中存放查询到的数据放入对应的列 46 for (Aritst aritst : aritsts) { 47 HSSFRow row1 = sheet.createRow(rowNum); 48 //"姓名","邀请码","所属经纪人","经纪人手机号", "总收入金额", "接单号", "成单数","满意度","是否优质艺人" 49 50 row1.createCell(0).setCellValue(aritst.getNickname()); 51 row1.createCell(1).setCellValue(aritst.getInviteCode()); 52 row1.createCell(2).setCellValue(aritst.getAgent()); 53 row1.createCell(3).setCellValue(aritst.getAgentMobile()); 54 row1.createCell(4).setCellValue(aritst.getRevenue()); 55 row1.createCell(5).setCellValue(aritst.getConnectionnum()); 56 row1.createCell(6).setCellValue(aritst.getServernum()); 57 row1.createCell(7).setCellValue(aritst.getSatisfiedRate()); 58 row1.createCell(8).setCellValue(aritst.getQuality()==1?"是":"否"); 59 rowNum++; 60 } 61 } 62 return wb; 63 }