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

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

前台代码:

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

或者:

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

后台代码:

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

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. python windows下安装pip及rarfile

    python之所以被广泛使用,倒不见得是本身语法简单,而是而nodejs/javascript一样把三方库的依赖管理简化了,而不用和java一样非得通过maven管理,而且还得打包后在classpat ...

  2. MySQL数据库索引的底层原理(二叉树、平衡二叉树、B-Tree、B+Tree)

    1.MySQL数据库索引的底层原理 https://mp.weixin.qq.com/s/zA9KvCkkte2mTWTcDv7hUg

  3. Chrome:不受信任的证书----openssl签发带Subject Alternative Name的证书

    Chrome下自签名证书提示无效的问题 发现chrome验证证书很严格,必须带有Subject Alternative Name.签发csr时,修改openssl.cnf : vi /etc/ssl/ ...

  4. LiteIDE 设置默认编译输出位置

    go build命令默认输出路径是当前工作路径,这个显得比较乱,我习惯于把输出文件放置在项目的build目录下,这样方便查找,已经同步备份的时候排除不必要的文件. go build命令可以指定-o 输 ...

  5. Vue 自定义按键修饰符

    如点击F2 触发某个事件 <input type="button" name="" id="" value="添加" ...

  6. 生命游戏(python实现,pygame显示图形)

    # 游戏规则:# 生命游戏(Game of Life),或者叫它的全称John Conway's Game of Life.是英国数学家约翰·康威在1970年代所发明的一种元胞自动机.# 1. 活细胞 ...

  7. Jmeter+nfluxDB+Grafana性能监控平台

    下载地址: nfluxDB下载地址:https://portal.influxdata.com/downloads/ Grafana下载地址:https://grafana.com/grafana/d ...

  8. os.environ详解

    我们想要用Python获得一些有关系统的各种信息的时候就不得不想到os的environ,那这里面都具体包含了那些内容呢? 简介 对于官方的解释,environ是一个字符串所对应环境的映像对象.这是什么 ...

  9. TCP报文结构

    来自:https://blog.csdn.net/qq_32998153/article/details/79680704

  10. [Golang] http.Post导致goroutine泄漏

    记录一个用http.Post的问题 if _, err := http.Post("http://127.0.0.1:8080", "", nil); nil ...