function Publicjs(){ } Publicjs.prototype = { /** * *直接由Ext的grid生成Excel *[注意] 只支持IE *param: gridId Ext grid的ID */ extGridToExcel : function(gridId,sheetName){ try{ if(Ext.getCmp(gridId)){ /********************************************* grid 生成 Excel ***************************************/ var oXL = new ActiveXObject("Excel.Application"); var oWB = oXL.Workbooks.Add(); var oSheet = oWB.ActiveSheet; var grid = Ext.getCmp(gridId); var store = grid.getStore(); var recordCount = store.getCount(); var view = grid.getView(); var cm = grid.getColumnModel(); var colCount = cm.getColumnCount(); var temp_obj = []; for(var i = 0; i < colCount;i++){ if(cm.isHidden(i)){ }else{ temp_obj.push(i); } } for(var i = 1; i <= temp_obj.length;i++){ oSheet.Cells(1,i).value = cm.getColumnHeader(temp_obj[i - 1]); } for(var i = 1 ; i <= recordCount; i++){ for(var j = 1; j<= temp_obj.length; j++){ oSheet.Cells(i+1,j).value = view.getCell(i-1,temp_obj[j-1]).innerText; } } if(sheetName){ oSheet.Name = sheetName; } oXL.UserControl = true; oXL.Visible = true; }else{ Ext.Msg.alert('Error','明细数据grid没有创建成功!'); return; } }catch(e){ if(Ext){ Ext.Msg.show({ title:'提示', msg:'请设置IE的菜单\'工具\'->Internet选项->安全->自定义级别->\'对未标记为可安全执行脚本ActiveX控件初始化并执行脚本\'->选择[启用] 就可以生成Excel', buttons:Ext.Msg.OK, icon:Ext.Msg.INFO }); }else{ alert('不支持ExtJs框架'); return; } } } };