java web将数据导出为Excel格式文件代码片段
本文实例为大家分享了javaweb将数据导出为Excel格式文件的具体代码,供大家参考,具体内容如下
1、jsp代码
<inputtype="button"class="btnbtn-info"onclick="getVerExcel();"value="导出为Excel文件"/>
2、js代码
functiongetVerExcel(){ window.location.href='/pms/jsp/version/getPrdVerListExcel?page=' +$("#getPage").html()+'&key='+$("#select").val(); }
3、java代码
/** * *Purpose:将产品版本列表导出为Excel文件 *@paramreq *请求 *@paramresp *应答 *@parampage *当前页数 *@paramkey *查询条件 *@return */ @RequestMapping("getPrdVerListExcel") publicvoidgetExcel(HttpServletRequestreq,HttpServletResponseresp,Integerpage,Stringkey){ //设置文件的mime类型 resp.setContentType("application/vnd.ms-excel"); //得到所有的数据 List<Version>verList=prdVersionSer.getAllPrdVersion(key); //若没有数据,则给用户提示 if(verList.size()==0){ req.setAttribute("getFileMsg","没有符合条件的信息!"); req.setAttribute("select",key); try{ req.getRequestDispatcher("/jsp/version/ver_list.jsp").forward(req,resp); }catch(Exceptione){ e.printStackTrace(); } }else{ //存储编码后的文件名 Stringname="name"; //存储文件名称 Stringn=""; if(key!=""){ n=verList.get(0).getPrdName()+"的版本列表"; }else{ n="产品版本列表"; } try{ name=URLEncoder.encode(n,"utf-8"); }catch(UnsupportedEncodingExceptione1){ e1.printStackTrace(); } resp.setHeader("content-disposition", "attachment;filename="+name+".xls;filename*=utf-8''"+name+".xls"); System.out.println("key:"+key); //从session中删除saveExcelMsg属性 req.getSession().removeAttribute("saveExcelMsg"); //定义一个输出流 ServletOutputStreamsos=null; //创建一个工作簿 HSSFWorkbookwb=newHSSFWorkbook(); //创建一个工作表 HSSFSheetsheet=null; if(key!=""){ sheet=wb.createSheet(verList.get(0).getPrdName()+"的版本信息"); }else{ sheet=wb.createSheet("产品版本信息"); } //返回数据格式对象 //从格式对象中获取对应日期格式的编号,如果格式不存在,该方法会为它生成新的编号 HSSFDataFormatformat=wb.createDataFormat(); shortdfNum=format.getFormat("yyyy-mm-dd"); //创建样式对象 CellStylestyle=wb.createCellStyle(); //设置数据格式 style.setDataFormat(dfNum); //创建第一行(表格标题) HSSFRowrow=sheet.createRow(0); HSSFCellcell=row.createCell(0,HSSFCell.CELL_TYPE_STRING); if(key!=""){ cell.setCellValue(verList.get(0).getPrdName()+"的产品版本列表"); }else{ cell.setCellValue("产品版本列表"); } //创建第二行(表头) row=sheet.createRow(1); cell=row.createCell(0,HSSFCell.CELL_TYPE_STRING); cell.setCellValue("序号"); cell=row.createCell(1,HSSFCell.CELL_TYPE_STRING); cell.setCellValue("产品名称"); cell=row.createCell(2,HSSFCell.CELL_TYPE_STRING); cell.setCellValue("版本号"); cell=row.createCell(3,HSSFCell.CELL_TYPE_STRING); cell.setCellValue("发布日期"); cell=row.createCell(4,HSSFCell.CELL_TYPE_STRING); cell.setCellValue("版本类型"); cell=row.createCell(5,HSSFCell.CELL_TYPE_STRING); cell.setCellValue("版本描述"); intnum=1; //遍历输出verList中的数据,将其存入Excel中 for(inti=0;i<verList.size();i++){ row=sheet.createRow(i+2); //写入序号 cell=row.createCell(0,HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(num); num++; //写入产品名称 cell=row.createCell(1,HSSFCell.CELL_TYPE_STRING); cell.setCellValue(verList.get(i).getPrdName()); //写入版本号 cell=row.createCell(2,HSSFCell.CELL_TYPE_STRING); cell.setCellValue(verList.get(i).getVerNo()); //写入发布日期(日期格式做处理) cell=row.createCell(3,HSSFCell.CELL_TYPE_STRING); //将样式应用于单元格 cell.setCellStyle(style); cell.setCellValue(verList.get(i).getVerDate()); //写入版本类型 cell=row.createCell(4,HSSFCell.CELL_TYPE_STRING); cell.setCellValue(verList.get(i).getVerType()); //写入版本描述 cell=row.createCell(5,HSSFCell.CELL_TYPE_STRING); cell.setCellValue(verList.get(i).getVerDesc()); } try{ //保存到文件中 sos=resp.getOutputStream(); wb.write(sos); }catch(Exceptione){ e.printStackTrace(); }finally{ if(sos!=null){ try{ sos.close(); }catch(IOExceptione){ e.printStackTrace(); } } } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。