项目中前台用的是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;
}

最新文章

  1. CAD的输出成高清jpg图片
  2. 快递查询SDK
  3. Day1 login
  4. 什么是BI【转】
  5. 十天学会单片机Day4串行口通信
  6. 【转】linux之mkfs/mke2fs格式化
  7. js读取json数据(php传值给js)
  8. [转] AC自动机详解
  9. iOS 压缩与裁剪图片问题
  10. 基于visual Studio2013解决算法导论之052深度优先
  11. mysql metadata lock
  12. mysql的账户管理
  13. Android智能手机上的音频浅析
  14. Taro文件上传:Blob Url下载Blob对象本身并通过接口上传到服务器
  15. Data Governance
  16. 七天开发进度(六)(微信小程序版(一))
  17. mysql 导入数据库问题
  18. 阿里云配置gitlab邮箱
  19. File类相关操作
  20. 服务器安装ubuntu 14.04 server,开机启动屏幕不停滚动错误WRITE SAME failed. Manually zeroing

热门文章

  1. LZW
  2. Token 安全登陆防止窃取
  3. Un-Error-ASP.NET:无法加载协定为“YlbService.MMSHServicesSoap”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。
  4. Jenkins 发布项目到远程服务器上
  5. 使用PhantomJS报warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '解决方法
  6. 【转】WPF DataGridComboBoxColumn使用
  7. Git采坑与问题排查
  8. 锐捷交换机如何配置远程管理地址(telnet)
  9. C++文件fstream的操作
  10. java导出pdf功能记录