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 append() html时的小问题的解决方法
Dec 16 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
Sep 05 Javascript
JavaScript简单实现网页回到顶部功能
Nov 12 Javascript
js的hasownproperty使用示例
Mar 02 Javascript
jQuery.holdReady()方法用法实例
Dec 27 Javascript
jQuery插件boxScroll实现图片轮播特效
Jul 14 Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
Aug 03 Javascript
使用bootstrap实现多窗口和拖动效果
Sep 22 Javascript
Vue生命周期示例详解
Apr 12 Javascript
js编写简单的计时器功能
Jul 15 Javascript
vue子路由跳转实现tab选项卡
Jul 24 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中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
手动初始化Angular的模块与控制器
2016/12/26 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
Javascript的this详解
2019/03/23 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
Python学习笔记之lambda表达式用法详解
2019/08/08 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
python 表格打印代码实例解析
2019/10/12 Python
python与mysql数据库交互的实现
2020/01/06 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
大学生年度自我鉴定
2013/10/31 职场文书
企划专员岗位职责
2013/12/09 职场文书
矫正人员思想汇报
2014/01/08 职场文书
冰淇淋开店创业计划书
2014/02/01 职场文书
初中教师个人工作总结
2015/02/10 职场文书
早恋主题班会
2015/08/14 职场文书
详解Python requests模块
2021/06/21 Python
php实例化对象的实例方法
2021/11/17 PHP
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS