JAVA利用POI导出Excel模板文件

来源:互联网 发布:淘宝店铺客服招聘 编辑:程序博客网 时间:2024/04/28 15:18

刚开始,我用的是ajax,后来发现后台生成了Excel,可是前台老是没反应,百度以后才知道这是由于ajax无法弹出保存下载对话框导致的。所以我就直接使用了form表单提交

前台代码如下:

<form method="post" action="/ODSMSPortlet/questionF/questionSysF!exportExcel.action"><input class="btn btn-success" type="submit" value="下载模板"/></form>

后台代码如下:

/** * 导出Excel模板 */public void exportExcel() throws IOException{setDataObject();try{//获取输出流OutputStream out = response.getOutputStream(); //清空responseresponse.reset();//设置文件内容下载方式String fileName = "Template.xls";// 文件名  response.setHeader("Content-Disposition", "attachment; filename="                       + URLEncoder.encode(fileName, "UTF-8")); response.setContentType("application/x-download; charset=UTF-8");/***生成Excel***/// 第一步,创建一个workbook,对应一个Excel文件          HSSFWorkbook wb = new HSSFWorkbook();          // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet          HSSFSheet sheet = wb.createSheet("模板");          // 第三步,在sheet中添加表头第0行         HSSFRow row = sheet.createRow(0);          // 第四步,创建单元格,并设置值表头 设置表头居中          HSSFCellStyle style = wb.createCellStyle();          style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式            HSSFCell cell = row.createCell(0);         cell.setCellType(0);        cell.setCellValue("账号");          cell.setCellStyle(style);          cell = row.createCell(1);          cell.setCellValue("姓名");          cell.setCellStyle(style);          cell = row.createCell( 2);          cell.setCellValue("区域");          cell.setCellStyle(style);          cell = row.createCell( 3);          cell.setCellValue("权限:0-提问权限,1-转派权限,2-回答权限");          cell.setCellStyle(style);                 //设置权限列表内容下拉框选择        String[] limitList = { "0", "1", "2"};         // 加载下拉列表内容          DVConstraint constraint = DVConstraint.createExplicitListConstraint(limitList);        // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列          CellRangeAddressList regions = new CellRangeAddressList(1,500, 3, 3);          // 数据有效性对象          HSSFDataValidation data_validation_list = new HSSFDataValidation(regions, constraint);          sheet.addValidationData(data_validation_list);                        //将excel写入到response输出流        wb.write(out);        response.getOutputStream().flush();              response.getOutputStream().close(); }catch(Exception e){e.printStackTrace();}}

OK,下面链接是之前参考过的文章:

http://www.java17.cn/thread-488-1-1.html

http://blog.csdn.net/u012116457/article/details/49780677

http://blog.csdn.net/lk_blog/article/details/7234736

0 0
原创粉丝点击