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;

    就这样就完全可以搞定下载,其实就是变通了一下.
  • 相关阅读:
    uboot移植步骤详解
    使用busybox制作根文件系统(rootfs)
    DULG uboot解决问题的文档
    uboot的环境变量
    ASP.NET状态管理 APPlication,Session,Cookie和ViewStat用法
    WCF事务
    WCF中流的处理
    C#操作配置文件
    WCF实例模式和对象生命周期
    WCF中实例模式(InstanceContextMode)与会话模式(SessionMode)
  • 原文地址:https://www.cnblogs.com/hannover/p/1847015.html
Copyright © 2011-2022 走看看