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 相关文章推荐
js比较和逻辑运算符的介绍
Mar 10 Javascript
JavaScript 不支持 indexof 该如何解决
Mar 30 Javascript
AngularJS基础 ng-readonly 指令简单示例
Aug 02 Javascript
JavaScript判断数组是否存在key的简单实例
Aug 03 Javascript
详解微信小程序 template添加绑定事件
Jun 23 Javascript
详解Js中的模块化是如何实现的
Oct 18 Javascript
jQuery实现模糊查询的方法分析
May 10 jQuery
Koa 中的错误处理解析
Apr 09 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
May 28 jQuery
原生JS 实现的input输入时表格过滤操作示例
Aug 03 Javascript
js实现整体缩放页面适配移动端
Mar 31 Javascript
使用Canvas绘制一个游戏人物属性图
Mar 25 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中static关键字原理的学习研究分析
2011/07/18 PHP
PHP反射机制用法实例
2014/08/28 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
javascript document.compatMode兼容性
2010/02/23 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/07/18 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
seajs学习之模块的依赖加载及模块API的导出
2016/10/20 Javascript
Vue实现购物车功能
2017/04/27 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
深入探索VueJS Scoped CSS 实现原理
2019/09/23 Javascript
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
python使用urllib模块和pyquery实现阿里巴巴排名查询
2014/01/16 Python
python中requests使用代理proxies方法介绍
2017/10/25 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
python爬虫 requests-html的使用
2020/11/30 Python
python基于opencv 实现图像时钟
2021/01/04 Python
python time.strptime格式化实例详解
2021/02/03 Python
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
小学庆六一活动总结
2014/08/28 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android