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 相关文章推荐
ajaxControlToolkit AutoCompleteExtender的用法
Oct 30 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
May 10 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
Jun 08 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
Apr 12 Javascript
JavaScript函数的调用以及参数传递
Oct 21 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
Dec 13 Javascript
详解Angularjs中的依赖注入
Mar 11 Javascript
老生常谈JavaScript数组的用法
Jun 10 Javascript
常见的浏览器Hack技巧整理
Jun 29 Javascript
javascript变量提升和闭包理解
Mar 12 Javascript
微信小程序转化为uni-app项目的方法示例
May 22 Javascript
vue3.0 项目搭建和使用流程
Mar 04 Vue.js
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扩展imagick
2014/06/02 PHP
php 魔术方法详解
2014/11/11 PHP
PHP实现的简单日历类
2014/11/29 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
JavaScript操作XML 使用百度RSS作为新闻源示例
2012/02/17 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
JS动态的把左边列表添加到右边的实现代码(可上下移动)
2016/11/17 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
react的hooks的用法详解
2020/10/12 Javascript
[51:26]VP vs VG 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Python设计模式之MVC模式简单示例
2018/01/10 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
python 实现识别图片上的数字
2019/07/30 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
《中彩那天》教学反思
2014/02/22 职场文书
员工生日活动方案
2014/08/24 职场文书
2015年党员自我剖析材料
2014/12/17 职场文书
部门主管竞聘书
2015/09/15 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python