ExtJs Excel导出并下载IIS服务器端遇到的问题


Posted in Javascript onSeptember 16, 2011

项目是Extjs的主要针对于Extjs GridPanel数据导出这块先做一下说明。
我们可以通过Ext.getcmp()方法获取到GridPanel对象并通过重写的方法获取Excel字符串具体方法可以百度到。这个应该也不是什么大问题。

//输出报表 
function ExportReport(title) { 
var vExportContent = Ext.getCmp("gridPanel").getExcelXml(null, title); 
if (Ext.isIE6 || Ext.isIE7 || Ext.isSafari || Ext.isSafari2 || Ext.isSafari3 || Ext.isIE8) { 
// var frm = document.createElement('form'); 
// frm.id = 'frmExtjs'; 
// frm.className = 'x-hidden'; 
// document.body.appendChild(frm); 
var f = document.createElement("form"); 
f.id = "frmExtjs"; 
document.body.appendChild(f); 
var i = document.createElement("input"); 
i.type = "hidden"; 
i.id = "exportContent"; 
i.name = "exportContent"; 
f.appendChild(i); 
i.value = vExportContent; 
Ext.Ajax.request({ 
url: 'frmExcel.aspx', 
method: 'POST', 
form: Ext.get('frmExtjs'), 
isUpload: true, 
params: { FileName: title + '.xls' } 
}) 
} else { 
document.location = 'data:application/vnd.ms-excel;base64,' + Base64.encode(vExportContent); 
}

以上是表单虚拟提交的方法。但是实验了很多方法。发现数据post过去后无法生成Excel通过生成后下载方法也无法实现。(即在服务器端无法生成,但本机可以生成。)经过多次思路的转折后来想到通过数据分析来调试。看看到底数据是否post到网页
string tmpFileName = "export.xls"; 
string tmpContent = Request["ExportContent"]; 
if (Request["FileName"] != "") 
{ 
tmpFileName = Request["FileName"];//获取传递来的文件名? 
tmpFileName = System.Web.HttpUtility.UrlEncode(Request.ContentEncoding.GetBytes(tmpFileName));//处理中文文件名的情况 
} 
Response.Clear(); 
Response.Buffer = true; 
Response.ContentType = "application/vnd.ms-excel"; 
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + tmpFileName + "\""); 
Response.Charset = ""; 
System.IO.StringWriter tmpSW = new System.IO.StringWriter(); 
System.Web.UI.HtmlTextWriter tmpHTW = new System.Web.UI.HtmlTextWriter(tmpSW); 
tmpHTW.WriteLine(tmpContent); 
Response.Write(tmpSW.ToString()); 
Response.End();

以上是生成并下载的CS文件

ExtJs Excel导出并下载IIS服务器端遇到的问题

后来找到这个工具

具体步骤很简单:

打开工具栏上的插件

ExtJs Excel导出并下载IIS服务器端遇到的问题

虽然是英文的,但是不在话下。文档都是看的英文的。

ExtJs Excel导出并下载IIS服务器端遇到的问题

ExtJs Excel导出并下载IIS服务器端遇到的问题

两张近照

这边就可以看到post过去以后的报错信息。

这个是无刷新post无法看到的页面。正因为这个而纠结了好久。今天终于知道哪错了。

把错误信息复制到文本生成html文件。

ExtJs Excel导出并下载IIS服务器端遇到的问题

原来是.net安全机制搞的鬼。

在web.config 的System.Web 后面加两句话就搞定了。

<httpRuntime requestValidationMode="2.0" />

<pages validateRequest="false" />

好了 问题解决了 结博。

Javascript 相关文章推荐
获取当前网页document.url location.href区别总结
May 10 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
Jan 22 Javascript
JavaScript 基础篇之对象、数组使用介绍(三)
Apr 07 Javascript
JS图片根据鼠标滚动延时加载的实例代码
Jul 13 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
Nov 23 Javascript
.NET微信公众号开发之创建自定义菜单
Jul 16 Javascript
原生JS简单实现ajax的方法示例
Nov 29 Javascript
详解vue的数据binding绑定原理
Apr 12 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
May 20 Javascript
jquery tmpl模板(实例讲解)
Sep 02 jQuery
vue实现公告栏文字上下滚动效果的示例代码
Jun 16 Javascript
vue实现列表滚动的过渡动画
Jun 29 Javascript
asp.net 30分钟掌握无刷新 Repeater
Sep 16 #Javascript
jquer之ajaxQueue简单实现代码
Sep 15 #Javascript
js substr、substring和slice使用说明小记
Sep 15 #Javascript
javascript 闭包
Sep 15 #Javascript
用JQuery模仿淘宝的图片放大镜显示效果
Sep 15 #Javascript
document.getElementById介绍
Sep 13 #Javascript
动态创建样式表在各浏览器中的差异测试代码
Sep 13 #Javascript
You might like
基于PHP与XML的PDF文档生成技术
2006/10/09 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
jQuery DOM操作小结与实例
2010/01/07 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
Jquery动态替换div内容及动态展示的方法
2015/01/23 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
详解vue-router2.0动态路由获取参数
2017/06/14 Javascript
jquery select插件异步实时搜索实例代码
2017/10/20 jQuery
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
[01:02:09]Liquid vs TNC 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21
2020/07/19 DOTA
python计算牛顿迭代多项式实例分析
2015/05/07 Python
python交互式图形编程实例(一)
2017/11/17 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
Python Django 命名空间模式的实现
2019/08/09 Python
python超时重新请求解决方案
2019/10/21 Python
基于python实现雪花算法过程详解
2019/11/16 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
行政总经理岗位职责
2013/12/05 职场文书
实用求职信范文分享
2013/12/25 职场文书
迟到检讨书500字
2014/02/05 职场文书
团委竞选演讲稿
2014/04/24 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
安全生产先进个人总结
2015/02/15 职场文书
公司开业主持词
2015/07/02 职场文书
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL