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的标签智能验证实现代码
Dec 27 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
Nov 02 Javascript
javascript原型链继承用法实例分析
Jan 28 Javascript
jquery密码强度校验
Dec 02 Javascript
JS获取地址栏参数的两种方法(简单实用)
Jun 14 Javascript
详解javascript 正则表达式之分组与前瞻匹配
May 30 Javascript
JavaScript如何借用构造函数继承
Nov 06 Javascript
vue 实现强制类型转换 数字类型转为字符串
Nov 07 Javascript
js实现轮播图效果 z-index实现轮播图
Jan 17 Javascript
vue-cli3单页构建大型项目方案
Apr 07 Javascript
微信小程序实现菜单左右联动
May 19 Javascript
JSON 入门教程基础篇 json入门学习笔记
Sep 22 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操作Memcache实例介绍
2013/06/14 PHP
php中in_array函数用法分析
2014/11/15 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
详解vee-validate的使用个人小结
2017/06/07 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
python实现装饰器、描述符
2018/02/28 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
Original Penguin英国官方网站:美国著名休闲时装品牌
2016/10/30 全球购物
疾病捐款倡议书
2014/05/13 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS