JAVA利用POI导出Excel模板文件

刚开始,我用的是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(); 
			//清空response
			response.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.youkuaiyun.com/u012116457/article/details/49780677

http://blog.youkuaiyun.com/lk_blog/article/details/7234736

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值