首页 JQuery/JavaScript Extjs 一键将Grid表格数据导出Excel

Extjs 一键将Grid表格数据导出Excel

作者:胡同里的砖头 围观群众:1636 更新于:2013-12-19

首先定义如下JS文件:
/*
 *功能:直接由Ext的grid生成Excel 
 *注意: 只支持IE 
 *参数:param1: gridId
 *      param2: sheetName  
 */
Ext.Excel = function(config){
   //Ext.Excel.superclass.constructor.call(this, config);
   Ext.apply(this,config);
};
Ext.apply(Ext.Excel.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控件初始化
                                 并执行脚本\'->选择[启用]&nbsp;&nbsp;就可以生成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();
              }
         }]

  • 本文标题: Extjs 一键将Grid表格数据导出Excel
  • 文章分类:【JQuery/JavaScript】
  • 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
留言评论
站点声明:
1、本站【胡同里的砖头】个人博客,借鉴网上一些博客模板,取其各优点模块自行拼装开发,本博客开发纯属个人爱好。
2、所有笔记提供给广大用户交流使用,可转载,可复制,纯个人开发所遇问题锦集记录使用
Copyright © huzlblog.com All Rights Reserved. 备案号:苏ICP备2021056683号-8