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 相关文章推荐
jQuery javaScript捕获回车事件(示例代码)
Nov 07 Javascript
JavaScript判断前缀、后缀是否是空格的方法
Apr 15 Javascript
浅谈JSON.parse()和JSON.stringify()
Jul 14 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
Nov 22 Javascript
DropDownList实现可输入可选择(两种版本可选)
Dec 07 Javascript
自定义vue全局组件use使用、vuex的使用详解
Jun 14 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
Jul 11 Javascript
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 jQuery
详解vue组件之间的通信
Aug 30 Javascript
如何通过Proxy实现JSBridge模块化封装
Oct 22 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
Nov 09 Javascript
如何使用gpu.js改善JavaScript的性能
Dec 01 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
天津市收音机工业发展史
2021/03/04 无线电
php error_log 函数的使用
2009/04/13 PHP
PHP防止跨域提交表单
2013/11/01 PHP
php实现源代码加密的方法
2015/07/11 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
Prototype Template对象 学习
2009/07/19 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
浅谈vue路径优化之resolve
2017/10/13 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
5.1手机促销活动
2014/01/17 职场文书
舞蹈教师自荐信
2014/01/27 职场文书
毕业生求职自荐书范文
2014/03/27 职场文书
投资意向协议书
2015/01/29 职场文书
学校开除通知书
2015/04/25 职场文书
北京青年观后感
2015/06/15 职场文书
入队仪式主持词
2015/07/04 职场文书
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android