java实现下载服务器上已经存在的Excel模板

1. 在对应目录上放入已经准备好的模板:


2. 前台jsp页面的一个按钮:

<a href="javascript:void(0)" class="easyui-linkbutton"
          data-options="iconCls:'icon-add'" οnclick="getUserTemplate();">获取模板</a>

3. js函数:

function getUserTemplate() {
	window.location.href = "UserAction!getUserTemplateTC.action";
}

4. 后台action代码(不需要Struts.xml配置文件):

public void getUserTemplateTC() {
		HttpServletRequest request = this.getRequest();
		HttpServletResponse response = this.getResponse();
		
		//获取文件的路径
        String excelPath = request.getSession().getServletContext().getRealPath("/Excel/"+"天池基础信息导入模板_标准.xls");
        String fileName = "天池基础信息导入模板_标准.xls".toString(); // 文件的默认保存名
        // 读到流中
        InputStream inStream;
		try {
			inStream = new FileInputStream(excelPath);//文件的存放路径
			// 设置输出的格式
	        response.reset();
	        response.setContentType("bin");
	        response.addHeader("Content-Disposition",
	                "attachment;filename=" + URLEncoder.encode("天池基础信息导入模板_标准2.xls", "UTF-8"));
	        // 循环取出流中的数据
	        byte[] b = new byte[200];
	        int len;

	        while ((len = inStream.read(b)) > 0){
	            response.getOutputStream().write(b, 0, len);
	        }
	        inStream.close();

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

5.后台action代码(需要struts.xml时):

action:

public String getUserTemplateTC() {
		HttpServletRequest request = this.getRequest();
		//获取文件的路径
        String excelPath = request.getSession().getServletContext().getRealPath("/Excel/"+"天池基础信息导入模板_标准.xls");
		try {
			userTemplateIs = new FileInputStream(excelPath);//文件的存放路径
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "userTemplate";
        
	}

struts.xml:

<result name="userTemplate" type="stream">
 <param name="contentType">application/vnd.ms-excel</param>
 <param name="inputName">userTemplateIs</param>
 <param name="contentDisposition">
  fileName = "${userTemplateName}"
 </param>
 <param name="bufferSize">1024</param>
</result>

步骤4和步骤5 选一种即可。







  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值