這篇文章主要介紹了關于js把頁面的table標簽導出為csv,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
// 使用該保存方法,table必須外嵌一個p且不能有任何其他元素 否則ie下載會出現其他數據
//tableid , title 為文件保存的文件名
function saveCode(tableid, title) { var winname; try { if (navigator.userAgent.indexOf("MSIE") > 0) //IE瀏覽器 { var strHTML = $("#" + tableid).parent().html(); //alert("IE瀏覽器"); winname = window.open("ToExcel", "_blank", 'top=10000'); winname.document.open('text/html', 'replace'); winname.document.write("<style>"); winname.document.write("table{border:solid 1px #000;text-align:center;border-collapse:collapse; border-spacing:0;}"); winname.document.write("table td{border:solid 1px #000;text-align:center;}"); winname.document.write("table th{border:solid 1px #000;text-align:center;}"); winname.document.write("</style>"); winname.document.write(strHTML); winname.document.execCommand('SaveAs', '', title + '.xls'); document.execCommand("ClearAuthenticationCache"); winname.close(); } else if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) //Firefox { //alert("Firefox"); var str = getTblDataByFirefox(tableid, this); //支持中文 var uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str); var downloadLink = document.createElement("a"); downloadLink.href = uri; downloadLink.download = title + ".csv"; document.body.appendChild(downloadLink); downloadLink.click(); document.body.removeChild(downloadLink); } else //Google Chrome { //alert("Google Chrome等瀏覽器"); var str = getTblData(tableid, this); //支持中文 var uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str); var downloadLink = document.createElement("a"); downloadLink.href = uri; downloadLink.download = title + ".csv"; document.body.appendChild(downloadLink); downloadLink.click(); document.body.removeChild(downloadLink); } } catch (e) { alert(e.Message); return false; } return false; } function getTblData(inTbl, inWindow) { var rows = 0; var tblDocument = document; tblDocument = eval(inWindow).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 += ","; rows -= 1; } outStr +=curTbl.rows[j].cells[i].innerText + ","; if (curTbl.rows[j].cells[i].colSpan > 1) { for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) { outStr += ","; } } if (i == 0) { if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) { rows = curTbl.rows[j].cells[i].rowSpan - 1; } } } outStr += "\r\n";//換行 } } else { outStr = null; alert(allPage.noData); } return outStr; }
開發中遇到一些需要導出數據之類的可以試試該方式 (ps:阿拉伯語言有bug不建議使用)
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com