ExtJs6.0之Grid前端导出Excel

这篇博客介绍了如何在ExtJs6.0的Grid中实现前端导出到Excel的功能,特别强调了支持三级表头的导出。通过引入特定的js文件并调用grid2Excel(grid, fileName)函数,可以轻松创建导出按钮。但需要注意,当Grid包含二级和三级表头且有合并单元格时,如果列表中有序号列,将无法正常导出。为解决此问题,文章提出了一种处理序号列的方法,即在导出时排除特定的dataIndex字段。" 110158988,10296071,PCIe4.0与PCIe3.0:对显卡性能影响实测,"['AMD', '显卡', '带宽', '性能测试', 'PCIe']
摘要由CSDN通过智能技术生成

该js文件支持三级表头的导出。
引入该js文件,调用grid2Excel(grid, fileName)即可。

  1. 新建导出按钮
new Ext.create('Ext.button.Button',{ 
    xtype:'button', 
    iconCls:'excel', 
    type: 'excel', 
    text:'保存为Excel', 
    handler:function() { 
        //grid 为Extjs grid对象 
        //"导出文件名"  为导出的Excel文件的名称                     
        grid2Excel(grid,"项目授权列表"); 
    } 
})
  1. 点击后调用该函数即可。

列出详细代码:

/** 
* 
* function grid2Excel(grid,filename) 
* @param grid Extjs grid panel 
* @param filename Excel 文件名称 
* 
* **/ 
(function(){
    
            function  getExplorer() {
   
            var explorer = window.navigator.userAgent ;
            //ie 
            if (explorer.indexOf("MSIE") >= 0) {
                return 'ie';
            }
            //firefox 
            else if (explorer.indexOf("Firefox") >= 0) {
                return 'Firefox';
            }
            //Chrome
            else if(explorer.indexOf("Chrome") >= 0){
                return 'Chrome';
            }
            //Opera
            else if(explorer.indexOf("Opera") >= 0){
                return 'Opera';
            }
            //Safari
            else if(explorer.indexOf("Safari") >= 0){
                return 'Safari';
            }         
        }

         function export_excel_ie(tableStr, fileName) {
   //整个表格拷贝到EXCEL中
            if(getExplorer()=='ie')
            {
                var oXL = new ActiveXObject("Excel.Application");
                /*
                 * 设置边框, 1表示最细边框,2表示细边框,4表示粗线。
                 */
                //oXL.Selection.Borders.Weight = 4;
                /*
                 * 设置边框线 1 实线, -4115 虚线, 4 点划相间线, 5 划线后跟两个点, -4118 点式线, -4119 双线。
                 */
                //oXL.Selection.Borders.LineStyle = 1;
                var el4table = document.createElement("div");
                el4table.innerHTML = tableStr;
                //创建AX对象excel 
                var oWB = oXL.Workbooks.Add();
                //获取workbook对象 
                var xlsheet = oWB.Worksheets(1);
                //激活当前sheet 
                var sel = document.body.createTextRange();
                sel.moveToElementText(el4table);
                //把表格中的内容移到TextRange中 
                sel.select;
                //全选TextRange中内容 
                sel.execCommand("Copy");
                //复制TextRange中内容  
                xlsheet.Paste();
                //粘贴到活动的EXCEL中       
                oXL.Visible = true;
                //设置excel可见属性

                try {
                    var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");
                } 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值