`
jimmee
  • 浏览: 558111 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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;

就这样就完全可以搞定下载,其实就是变通了一下.
3
0
分享到:
评论

相关推荐

    EXTJS打印源代码

    6. **跨浏览器兼容性**:不同的浏览器对打印的支持程度可能不同,因此在实现打印功能时需要考虑其兼容性,确保在主流浏览器如Chrome、Firefox、Edge和IE上都能正常工作。 7. **事件监听与回调**:在打印过程中,...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: ...

    基于Extjs的开源控件库ExtAspNet中文版 v3.1.9

    支持的浏览器: IE 7.0+、Firefox 3.6+、Chrome 3.0+、Opera 10.5+、Safari 3.0+ 授权协议:Apache License 2.0 (Apache) ExtAspNet 是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果。目标是创建没有...

    ExtAspNet_v2.3.2_dll

    支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: ...

    ExtAspNet控件 v3.1.9源码2012825

    IE 7.0+、Firefox 3.6+、Chrome 3.0+、Opera 10.5+、Safari 3.0+ 源码有中文示例和英文示例,以及帮助文档(存放在doc文件夹里)方便用户学习 更新信息 2012-08-18 v3.1.9 -修正other/addtab.aspx示例的JS错误和...

    基于Extjs的开源控件库ExtAspNet英文版 v3.1.9

    支持的浏览器: IE 7.0+、Firefox 3.6+、Chrome 3.0+、Opera 10.5+、Safari 3.0+ 授权协议:Apache License 2.0 (Apache) ExtAspNet 是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果。目标是创建没有...

    UniGUI集合说明--追月无名.pdf

    - **升级浏览器**:建议用户使用更现代的浏览器,如Chrome、Firefox等。 #### 3. 在浏览器端不能使用 ShowMessage() `ShowMessage()` 是UniGUI中用于弹出消息对话框的一个函数。如果在浏览器端无法使用该功能,...

Global site tag (gtag.js) - Google Analytics