通过官方extjs导出excel在IE下速度很慢,如何点击按钮友好提示,完成后关闭友好提示?因为不是通过load的方法,extjs里的方法都不行,页面会无响应很长时间.代码:
function exporttoexcel(grid){
var vExportContent = grid.getExcelXml();
if (Ext.isIE6 || Ext.isIE7 || Ext.isSafari || Ext.isSafari2 || Ext.isSafari3) {
var fd=Ext.get('frmDummy');
if (!fd) {
fd=Ext.DomHelper.append(Ext.getBody(),
{
tag:'form',
method:'post',
id:'frmDummy',
action:'exportexcel.jsp',
target:'_blank',
name:'frmDummy',
cls:'x-hidden',
cn:[
{
tag:'input',
name:'exportContent',
id:'exportContent',
type:'hidden'
}
]
}
,true);
}
fd.child('#exportContent').set({value:vExportContent});
fd.dom.submit();
} else {
document.location = 'data:application/vnd.ms-excel;base64,'+Base64.encode(vExportContent);
}
}
}
function exporttoexcel(grid){
var vExportContent = grid.getExcelXml();
if (Ext.isIE6 || Ext.isIE7 || Ext.isSafari || Ext.isSafari2 || Ext.isSafari3) {
var fd=Ext.get('frmDummy');
if (!fd) {
fd=Ext.DomHelper.append(Ext.getBody(),
{
tag:'form',
method:'post',
id:'frmDummy',
action:'exportexcel.jsp',
target:'_blank',
name:'frmDummy',
cls:'x-hidden',
cn:[
{
tag:'input',
name:'exportContent',
id:'exportContent',
type:'hidden'
}
]
}
,true);
}
fd.child('#exportContent').set({value:vExportContent});
fd.dom.submit();
} else {
document.location = 'data:application/vnd.ms-excel;base64,'+Base64.encode(vExportContent);
}
}
}
解决方案 »
- 请教:如何把一个表单中元素的值赋给另一个表单中的元素
- [extjs]store的exception事件中如果获取自定义的错误信息
- 页面失效
- 如何在框架中防止用户非正常关闭IE
- img动态时间问题。谢谢!
- WdatePicker 的realvalue和value值的问题
- 实现关闭时弹出一个类似word关闭时的确认框,“是否保存修改”,三个钮:是、否、取消。
- 最大化的问题!!
- 在javascript 中如何对 <INPUT id="file1" type="file" name="file2">进行赋值,就是不点击浏览选择图片
- slideDown()函数调用
- js咋不管用
- jquery获取div的id
var GridToExcel= function(grid){
/**
* @ grid gridPanel 要导出的grid
* @ 客户端必须使用IE浏览器,并且安装了Excel2003
* @ Author : 逍遥君武
* @ CreatData : 2010-1-20
*/
//提取grid的列
var columns = grid.getColumnModel().config.columns ?
grid.getColumnModel().config.columns :
grid.getColumnModel().config; //提取store以及相关参数
var store = grid.getStore();
var colCount = columns.length;//字段数量
var Cols = new Array(colCount);//为导出字段参数做准备
var storeCount = store.getCount();//记录数量 //初始化一个可用ID
var gridID = grid.getId()+'ExcelObj'; //OWC的HTML脚本
var sheetHtml = '<OBJECT id="' + gridID + '" height="100%" width="100%" classid="clsid:0002E559-0000-0000-C000-000000000046"><PARAM NAME="EnableAutoCalculate" VALUE="-1"><PARAM NAME="DisplayTitleBar" VALUE="0"><PARAM NAME="DisplayToolbar" VALUE="-1"><PARAM NAME="ViewableRange" VALUE="1:65536"></OBJECT>'; var win = new Ext.Window({
title: '数据分析',
closable:true,
width:600,
height:350,
plain:true,
html:sheetHtml
}); win.show(this); //从OWC的HTML脚本获得OWC对象
var xlBook = document.getElementById(gridID);
var xlsheet = xlBook.ActiveSheet; //用grid的数据生成HTML的table
var tableHtml = "<table><tr>"
for(var i = 0; i < colCount; i++){//生成表头,并读取列参数
tableHtml += "<td width=\"" + columns[i].width + "\">" + columns[i].header + "</td>" var col = new Object();
col.dateIndex = columns[i].dataIndex;
col.renderer = columns[i].renderer;
Cols[i] = col;
} tableHtml += "</tr>" //生成表格数据体
for(var i = 0; i < storeCount; i++){
var tmpTR = "";
tmpTR += "<tr>";
for(var j = 0; j < colCount; j++){
var date = store.getAt(i);
var tmpTD = "";
if(columns[j].renderer){
tmpTD = "<td>"+ (columns[j].renderer(date.get(columns[j].dataIndex))) +"</td>";
}else{
tmpTD = "<td>"+ (date.get(columns[j].dataIndex)) +"</td>";
}
tmpTR += tmpTD;
}
tmpTR += "</tr>";
tableHtml += tmpTR;
} tableHtml += "</table>"; //将HTML数据绑定给OWC
xlBook.HTMLData = tableHtml;
//设置OWC的外观参数
var xlsheet = xlBook.ActiveSheet;
xlsheet.Columns.Font.Size = 9; //销毁对象
xlBook=null;
xlsheet=null;
}