1. 程式人生 > 程式設計 >純JS將table表格匯出到excel的方法

純JS將table表格匯出到excel的方法

html

<div >
    <button type="button" onclick="getXlsFromTbl('tableExcel','myDiv')">IE匯出Excel方法</button>
    <button type="button" onclick="method5('tableExcel')">Chrome匯出Excel</button>
</div>
<div id="myDiv">
    <table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0">
        <tr>
            <td colspan="5" align="center">html 表格匯出到Excel</td>
        </tr>
        <tr>
            <td>列標題1</td>
            <td>列標題2</td>
            <td>類標題3</td>
            <td>列標題4</td>
            <td>列標題5</td>
        </tr>
        <tr>
            <td>aaa</td>
            <td>bbb</td>
            <td>ccc</td>
            <td>ddd</td>
            <td>eee</td>
        </tr>
        <tr>
            <td>AAA</td>
            <td>BBB</td>
            <td>CCC</td>
            <td>DDD</td>
            <td>EEE&ltFKaCW
t;/td> </tr> <tr> <td>FFF</td> <td>GGG</td> http://www.cppcns.com<td>HHH</td> <td>III</td> <td>JJJ</td> </tr> </table> </div>

<script language="" type="text/script">
        //IE方法
        function getXlsFromTbl(inTblId,inWindow){

            try {
                var allStr = "";
                var curStr = "";
                if (inTblId != null && inTblId != "" && inTblId != "null") {

                    curStr = getTblData(inTblId,inWindow);

                }
                if (curStr != null) {
                    allStr += curStr;
                }

                else {

                    alert("你要匯出的表不存在");
                    return;
                }
                var fileName = getExce
lFileName(); doFileExport(fileName,allStr); } catch(e) { alert("匯出發生異常:" + e.name + "->" + e.description + "!"); } } function getTblData(inTbl,inWindow) { var rows = 0; var tblDocument = document; if (!!inWindow && inWindow != "") { if (!document.all(inWindow)) { return null; } else { tblDocument = eval(inWindo
w).document; } } var curTbl = tblDocument.getElementById(inTbl); var outStr = ""; if (curTbl != null) { for (var j = 0; j < curTbl.rows.length; j++) { for (var i = 0; i < curTbl.rows[j].cells.length; i++) { if (i == 0 && rows > 0) { outStr += " t"; rows -= 1; } outStr += curTbl.rows[j].cells[i].innerText + "t"; if (curTbl.rows[j].cells[i].colSpan > 1) { for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) { outStr += " t"; } } if (i == 0) { if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) { rows = curTbl.rows[j].cells[i].rowSpan - 1; } } } outStr += "rn"; } } else { outStr = null; alert(inTbl + "不存在 !"); } return outStr; } function getExcelFileName() { var d = new Date(); var curYear = d.getYear(); var curMonth = "" + (d.getMonth() + 1); var curDate = "" + d.getDate(); var curHour = "" + d.getHours(); var curMinute = "" + d.getMinutes(); var curSecond = "" + d.getSeconds(); 客棧 if (curMonth.length == 1) { curMonth = "0" + curMonth; } if (curDate.length == 1) { curDate = "0" + curDate; } if (curHour.length == 1) { curHour = "0" + curHour; } if (curMinute.length == 1) { curMinute = "0" + curMinute; } if (curSecond.length == 1) { curSecond = "0" + curSecond; } var fileName = "table" + "_" + curYear + curMonth + curDate + "_" + curHour + curMinute + curSecond + ".csv"; return fileName; } function doFileExport(inName,inStr) { var xlsWin = null; if (!!document.all("glbHideFrm")) { xlsWin = glbHideFrm; } else { var width = 6; var height = 4; var openPara = "left=" + (window.screen.width / 2 - width / 2) + ",top=" + (window.screen.height / 2 - height / 2) + ",scrollbars=no,width=" + width + ",height=" + height; xlsWin = window.open("","_blank",openPara); } xlsWin.document.write(inStr); xlsWin.document.close(); xlsWin.document.execCommand('Saveas',true,inName); xlsWin.close(); } //Chrome方法 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 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 method5(tableid) { if(getExplorer()=='ie') { var curTbl = document.getElementById(tableid); var oXL = new ActiveXObject("Excel.Application"); var oWB = oXL.Workbooks.Add(); var xlsheet = oWB.Worksheets(1); var sel = document.body.createTextRange(); sel.moveToElementText(curTbl); sel.select(); sel.execCommand("Copy"); xlsheet.Paste(); oXL.Visible = true; try { var fname = oXL.Application.GetSaveAsFilename("Excel.xls","Excel Spreadsheets (*.xls),*.xls"); } catch (e) { print("Nested catch caught " + e); } finally { oWB.SaveAs(fname); oWB.Close(savechanges = false); oXL.Quit(); oXL = null; 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><meta charset="UTF-8"></head><body><table>{table}</table></body></html>',base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) },format = function(s,c) { return s.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>

到此這篇關於純JS將table表格匯出到excel的方法的文章就介紹到這了,更多相關js table表格匯出excel內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!