Ext GridPanel 导出 Excel
程序员文章站
2022-03-01 20:36:09
...
首先定义如下JS文件:
调用:
没上传 调用代码
那几行 自己打上吧
用起来 真爽啊~~~~
/* *功能:直接由Ext的grid生成Excel *注意: 只支持IE *参数:param1: gridId * param2: sheetName */ Ext.downExcel= function(config){ //Ext.Excel.superclass.constructor.call(this, config); Ext.apply(this,config); }; Ext.apply(Ext.downExcel.prototype,{ extGridToExcel : function(){ try{ if(Ext.getCmp(this.gridId)){ /********************************************* grid 生成 Excel ***************************************/ var oXL = new ActiveXObject("Excel.Application"); var oWB = oXL.Workbooks.Add(); var oSheet = oWB.ActiveSheet; var grid = Ext.getCmp(this.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(this.sheetName){ oSheet.Name = this.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; } } } });
调用:
buttons:[{ text:'导出Excel', handler:function() { var excel = new Ext.Excel({gridId:'datagrid',sheetName:'中期生产计划--逆排'}); excel.extGridToExcel(); } }]
没上传 调用代码
那几行 自己打上吧
用起来 真爽啊~~~~
下一篇: OpenOffice仍是开源办公软件之王