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图片画廊插件 推荐
May 12 Javascript
JavaScript基础知识之数据类型
Aug 06 Javascript
js浮点数精确计算(加、减、乘、除)
Dec 26 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
Dec 17 Javascript
jquery文字填写自动高度的实现方法
Nov 07 Javascript
自己封装的一个简单的倒计时功能实例
Nov 23 Javascript
web.js.字符串与正则表达式操作
May 13 Javascript
JS 调试中常见的报错问题解决方法
May 20 Javascript
荐书|您有一份JavaScript书单待签收
Jul 21 Javascript
浅析Vue 生命周期
Jun 21 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
Oct 22 Javascript
vue+echarts实现多条折线图
Mar 21 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原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
浅析SVN常见问题及解决方法
2013/06/21 PHP
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
简单的自定义php模板引擎
2016/08/26 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
Vue中props的使用详解
2018/06/15 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
Python Matplotlib库入门指南
2015/05/18 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
基于Python的PIL库学习详解
2019/05/10 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
Python实现序列化及csv文件读取
2020/01/19 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
某公司的.net工程师面试题笔试题
2013/11/22 面试题
经典的班主任推荐信
2013/10/28 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
人事文员岗位职责
2014/02/16 职场文书
群众路线剖析材料
2014/09/30 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
地心历险记观后感
2015/06/15 职场文书
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript