项目中前台用的是Ext JS,要从数据库中查询数据并导出为Excel表格

对此研究了下,代码如下:

前台代码:

         /**
* 进行下载文件(form方式)
*/
_downloadDraft:function () {
var formId = 'form-'+Ext.data.IdGenerator.get('uuid').generate();//下载表单的id
if (!Ext.fly(formId)) { //如果不存在一个id为formId的form表单,则执行下面的操作 //下面代码是在创建一个表单以及添加相应的一些属性
var downForm = document.createElement('form'); //创建一个form表单
downForm.id = formId;   //该表单的id为formId
downForm.name = formId; //该表单的name属性为formId
downForm.className = 'x-hidden'; //该表单为隐藏的
downForm.action = 'pledgeRepoDlgQuoteController/downloadDraft.action'; //表单的提交地址
downForm.method = 'post'; //表单的提交方法 document.body.appendChild(downForm); //将form表单追加到body里面
}
Ext.fly(formId).dom.submit(); //调用form表单的submit方法,提交表单,从而开始下载文件 //因为表单已经提交了,文件也开始下载了,所以过河拆桥,把表单移除掉
//如果存在id为formId的表单,则将它移除掉
if (Ext.fly(formId)) {
document.body.removeChild(downForm);
}
}

或者:

          /**
* 进行下载文件(iframe方式)
*/
_downloadDraft:function () {
var elemIF = document.createElement("iframe");
elemIF.src = 'pledgeRepoDlgQuoteController/downloadDraft.action';
elemIF.style.display = "none";
document.body.appendChild(elemIF);
}

后台代码:

     @RequestMapping("/downloadDraft.action")
public String downloadDraft( HttpServletRequest request, HttpServletResponse response) {
logger.info("开始下载质押式回购对话报价草稿~~~");
HSSFWorkbook hssfWorkbook = this.pledgeRepoDlgDraftService.exportDraft();
String fileName = "质押式回购对话报价草稿.xls";
try {
fileName = new String(fileName.getBytes("GBK"), "ISO8859-1");
response.setHeader("Content-disposition", "attachement;filename="+fileName);
response.setContentType("application/vnd.ms-excel");
OutputStream out = response.getOutputStream();
hssfWorkbook.write(out);
out.close();
logger.info("结束下载质押式回购对话报价草稿~~~");
}catch (Exception e){
logger.info("下载质押式回购对话报价草稿中出现异常~~~");
e.printStackTrace();
}
return null;
}

Ext下载文件的更多相关文章

  1. HTTP下载文件名称编码说明

    HTTP下载保存文件名 下载文件需要保存的名称 在响应报文头中 Content-Disposition 响应报文头域中指定, 例如 Content-Disposition: attachment; f ...

  2. extjs插件开发上传下载文件简单案例

    前台,extjs,框架,mybatis,spring,springMVC,简单的文件上传下载案例. 必要的jar包,commons-fileupload-1.3.1.jar,commons-io-2. ...

  3. Web 在线文件管理器学习笔记与总结(9)下载文件

    ① 普通形式的文件可以使用超链接形式下载 <a href = '下载文件名'>点击下载</a> ② 如果下载图片.html 等类型的文件,使用header() 函数发送网页头信 ...

  4. Java下载文件的几种方式

    转发自博客园Sunny的文章 1.以流的方式下载 public HttpServletResponse download(String path, HttpServletResponse respon ...

  5. tp3.2 上传文件及下载文件

    公共方法 UploadFile.class.php() // 开始 , , , ,];];,; ;; ::::::;,) {//文件上传失败 //捕获错误代码$this->error($file ...

  6. Android使用Xutil3.0下载文件.md

    Android使用Xutil3.0下载文件.md 新建项目: 引入依赖: implementation 'org.xutils:xutils:3.5.0' 添加权限: <uses-permiss ...

  7. java客户端调用ftp上传下载文件

    1:java客户端上传,下载文件. package com.li.utils; import java.io.File; import java.io.FileInputStream; import ...

  8. 【文件下载】Java下载文件的几种方式

    [文件下载]Java下载文件的几种方式  摘自:https://www.cnblogs.com/sunny3096/p/8204291.html 1.以流的方式下载. public HttpServl ...

  9. 使用curl在命令行中下载文件

    http://m.blog.csdn.net/blog/mayadong7349/7019208 使用curl在命令行中下载文件 linux下curl简单应用详解 http://blog.sina.c ...

随机推荐

  1. win7上手机ADB interface无法安装驱动

    解决办法: https://blog.csdn.net/riyuexingchen1204/article/details/84594061

  2. SpringBoot项目中普通类获取http相关的类(request/response/session)

    import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import ...

  3. 使用trace文件分析ANR

    2017年02月07日 12:32:45 不死鸟JGC 阅读数 13886更多 分类专栏: Android   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链 ...

  4. Java类成员初始化顺序

    类中包含7中成员:1.静态变量 static2.final静态常量 final static3.静态代码块 static{}  //多个代码块顺序执行 4.普通变量5.普通代码块 {}  //多个代码 ...

  5. js---if判断的几种写法

    在写JS中最常见的就是 if 判断,但是直接写 if(){}else{}; 太low ,下面是常见的几种js的if判断的写法: /** * js 判断的几种写法 */ var a = 10,b = 2 ...

  6. Nginx warn:an upstream response is buffered to a temporary file

    我通过nginx下载文件,error.log中出现如下警告日志:warn:an upstream response is buffered to a temporary file  . 虽然网上各种例 ...

  7. ubuntu16.04下安装运行PL-SLAM

    PL-SLAM是Ruben Gomez-Ojeda大神融合点和线特征SLAM的最新成果,并开放了源代码,本博文记录安装运行PL-SLAM遇到的一些问题. 1源代码地址 https://github.c ...

  8. GPL & LGPL

    Reference https://www.cnblogs.com/findumars/p/3556883.html GPL 我 们很熟悉的Linux就是采用了GPL.GPL协议和BSD, Apach ...

  9. SDN实验---Ryu的应用开发(二)Learning Switch

    一:自学习交换机(二层MAC交换机)的编程思路 (一)明确问题 如何实现软件定义的自学习交换机? (二)设计解决方案 通过控制器来实现自学习交换算法,然后指导数据平面实现交换机操作 (三)确定具体的技 ...

  10. Java 动态代理与AOP

    动态代理与AOP 代理模式 代理模式给某一个目标对象(target)提供代理对象(proxy),并由代理对象控制对target对象的引用. 模式图: 代理模式中的角色有: 抽象对象角色(Abstrac ...