>  기사  >  웹 프론트엔드  >  js는 페이지의 테이블 태그를 csv로 내보냅니다.

js는 페이지의 테이블 태그를 csv로 내보냅니다.

不言
不言원래의
2018-07-05 17:50:492511검색

이 글은 주로 js가 페이지의 테이블 태그를 csv로 내보내는 것에 대해 소개합니다. 이제 필요한 친구들이 참고할 수 있도록 공유하겠습니다. 🎜🎜 #

// 이 저장 방법을 사용하면 테이블에 p가 포함되어야 하며 다른 요소는 포함될 수 없습니다. 그렇지 않으면 IE에서 다운로드할 때 다른 데이터가 나타납니다.

 //tableid , 제목은 저장된 파일 이름입니다

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(&#39;SaveAs&#39;, &#39;&#39;, title + &#39;.xls&#39;);
            document.execCommand("ClearAuthenticationCache");
            winname.close();
        }
        else if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0)       //Firefox  
        {
            //alert("Firefox");  
            var str = getTblDataByFirefox(tableid, this);
            //支持中文
            var uri = &#39;data:text/csv;charset=utf-8,\ufeff&#39; + 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 = &#39;data:text/csv;charset=utf-8,\ufeff&#39; + 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: 아랍어에는 버그가 있으므로 권장하지 않음)

# 🎜🎜#위 내용은 이 글의 전체 내용이 모든 분들의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용을 보시려면 PHP 중국어 홈페이지를 주목해 주세요!

관련 권장 사항:

JavaScript 오류 개체 구문 분석


js 구현 이미지를 클릭하면 반복됩니다.


URL을 JSON 형식으로 변환

위 내용은 js는 페이지의 테이블 태그를 csv로 내보냅니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.