js将表格里面的内容导出Excel格式

来源:互联网 发布:javascript模式 pdf 编辑:程序博客网 时间:2024/05/18 03:43

<html>

<head>

    <script type="text/javascript"language="javascript">

        var idTmr;

        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

            elseif(explorer.indexOf("Chrome") >= 0){

                return 'Chrome';

            }

            //Opera

            elseif(explorer.indexOf("Opera") >= 0){

                return 'Opera';

            }

            //Safari

            elseif(explorer.indexOf("Safari") >= 0){

                return 'Safari';

            }

        };

        function method1(tableid) {//整个表格拷贝到EXCEL中

            if(getExplorer()=='ie')

            {

                var curTbl =document.getElementById(tableid);

                var oXL = newActiveXObject("Excel.Application");

 

                //创建AX对象excel

                var oWB = oXL.Workbooks.Add();

                //获取workbook对象

                var xlsheet =oWB.Worksheets(1);

                //激活当前sheet

                var sel =document.body.createTextRange();

                sel.moveToElementText(curTbl);

                //把表格中的内容移到TextRange中

                sel.select;

                //全选TextRange中内容

               sel.execCommand("Copy");

                //复制TextRange中内容

                xlsheet.Paste();

                //粘贴到活动的EXCEL中

                oXL.Visible = true;

                //设置excel可见属性

 

                try {

                    var fname =oXL.Application.GetSaveAsFilename("Excel.xls", "ExcelSpreadsheets (*.xls), *.xls");

                } catch (e) {

                    print("Nested catchcaught " + e);

                } finally {

                    oWB.SaveAs(fname);

 

                    oWB.Close(savechanges =false);

                    //xls.visible = false;

                    oXL.Quit();

                    oXL = null;

                    //结束excel进程,退出完成

                    //window.setInterval("Cleanup();",1);

                    idTmr =window.setInterval("Cleanup();", 1);

 

                }

 

            }

            else

            {

               tableToExcel(tableId);

            }

        };

        function Cleanup() {

            window.clearInterval(idTmr);

            CollectGarbage();

        };

        var tableToExcel = (function() {

            var uri ='data:application/vnd.ms-excel;base64,',

                    template ='<html><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>',

                    base64 = function(s) {return window.btoa(unescape(encodeURIComponent(s))) },

                    format = function(s, c) {

                        returns.replace(/{(\w+)}/g,

                                function(m, p){ return c[p]; }) }

            return function(table, name) {

                if (!table.nodeType) table =document.getElementById(table)

                var ctx = {worksheet: name ||'Worksheet', table: table.innerHTML}

                window.location.href = uri +base64(format(template, ctx))

            }

        })();

    </script>

 

</head>

<body>

<tableid="ta">

    <tr>

        <th>1</th><

        <th>23</th>

        <th>天津</th>

        <th>1</th><

        <th>23</th>

        <th>天津</th>

    </tr>

    <tr>

       <td>1</td><td>admin</td>

        <td>23</td><td>程序员</td>

        <td>天津</td><td>admin@kali.com</td>

    </tr>

    <tr>

       <td>2</td><td>guest</td>

        <td>23</td><td>测试员</td>

        <td>北京</td><td>guest@kali.com</td>

    </tr>

</table>

<inputid="Button1" type="button" value="导出EXCEL"

      onclick="javascript:method1('ta')" />

</body>

</html>

原创粉丝点击