mmmzzc 发表于 2013-1-29 09:20:38

Ext GridPanel 导出 Excel

首先定义如下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);                        }                                                    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).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();            }         }]

没上传 调用代码
那几行 自己打上吧
用起来 真爽啊~~~~
页: [1]
查看完整版本: Ext GridPanel 导出 Excel