zoukankan      html  css  js  c++  java
  • ExtJs 2.2 Grid导出Excel的解决方案(支持ie6,ie7,firefox2.0)

    1.我使用Ext要要导出Grid里的数据到Excel,可以导出多页,而不仅仅是Grid里的浏览的一页.
    刚开始的时候,我使用window.open的方式打开下载的文件,可是在ie6,ie7下根本就不能下载文件(这个时候我想,使用extjs真tm麻烦,后台都产生好excel文件了,怎么前台一个下载功能还这么烦,一般使用jsp页面设置一个文件的url链接就可以点击下载了,但是做的系统已经使用extjs,只能搞定解决办法了):
    form.doAction('submit', {
    						url : 'config/DesignBomAction.do?op=exportBom',
    						waitTitle : '请稍等',
    						waitMsg : '数据读取中……',
    						params : baseParams,
    						scope : this,
    						success : function(form, _action) {
    							
    							var url = encodeURI(basepath+"/servlet/DownloadFile?filename="
    									+ result.msg);
     							
    							if (url) {
    								
    								var appWinow=window.open(url);
    								appWindow.focus();
    								
    
    							} else {
    								Ext.Msg.show({
    									title : '系统提示',
    									msg : "导出数据失败",
    									buttons : Ext.Msg.OK,
    									icon : Ext.Msg.INFO
    								});
    							}
    
    							
    							this.close();
    							
    						},
    						failure : function(form, action) {
    							Ext.Msg.show({
    								title : '系统提示',
    								msg : "导出数据失败",
    								buttons : Ext.Msg.OK,
    								icon : Ext.Msg.INFO
    							});
    						},
    						scope : this
    					});
    					

    我都说了,上面的这种方案,实际情况在ie6,ie7是下载不了文件的.

    2.于是我就google,baidu一下,看一下extjs怎么导出excel的.
    Extjs官方给的解决方案:
    [url] http://extjs.com/forum/showthread.php?t=32400&highlight=excel[/url]翻译过来:
    http://extjs.org.cn/node/324
    看了这个解决方案:核心就是把grid里的store数据转换成xml的形式,之后创建一个form提交到服务器,服务器在设置响应为excel下载文件,并返回提交的数据.
    我觉得这不是多找事干么?为什么我在后台不直接生成excel,前台你就负责下载就好了.最主要的,我发现这个解决没有讲到ExtJs分页表格时,如果我导出的多页数据时怎么搞定?

    3.我的解决方案(支持ie6,ie7,firefox2.0):

    1)先点击一个下载文件的提交按钮,这个时候,后台生成了相应的excel文件,返回文件名.
    2)在另一个按钮里,单击下载命令,处理事件代码形式如下:
         
       var url="yourdownloadurl?filename=yourexcelname";		window.location.href=url;

    就这样就完全可以搞定下载,其实就是变通了一下.
  • 相关阅读:
    Proj THUDBFuzz Paper Reading: PMFuzz: Test Case Generation for Persistent Memory Programs
    入围 WF 后训练记
    算法竞赛历程
    2021 多校 杭电 第十场
    2021 多校 杭电 第九场
    2021 多校 牛客 第十场
    2021 多校 牛客 第九场
    2021 多校 杭电 第八场
    2021 多校 杭电 第六场
    2021 多校 杭电 第七场
  • 原文地址:https://www.cnblogs.com/hannover/p/1847015.html
Copyright © 2011-2022 走看看