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 相关文章推荐
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
Nov 16 Javascript
jquery插件制作简单示例说明
Feb 03 Javascript
JavaScript基本的输出和嵌入式写法教程
Oct 20 Javascript
JavaScript类型系统之基本数据类型与包装类型
Jan 06 Javascript
全面介绍javascript实用技巧及单竖杠
Jul 18 Javascript
微信小程序 特效菜单抽屉效果实例代码
Jan 11 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
Oct 26 Javascript
vue-cli 引入、配置axios的方法
May 08 Javascript
vue-cli安装使用流程步骤详解
Nov 08 Javascript
原生js添加一个或多个类名的方法分析
Jul 30 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
Apr 26 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
Aug 14 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
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
php获取汉字首字母的函数
2013/11/07 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
phplot生成图片类用法详解
2015/01/06 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
php实现登录页面的简单实例
2019/09/29 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
2014/12/31 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
2016/11/21 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
2017/01/05 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
2018/11/10 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
python概率计算器实例分析
2015/03/25 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
Django项目在pycharm新建的步骤方法
2021/03/02 Python
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
编辑个人求职信范文
2013/09/21 职场文书
创建文明学校实施方案
2014/03/11 职场文书
企业职业病防治方案
2014/05/29 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
公司周年庆典致辞
2015/07/30 职场文书
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏