Maison  >  Article  >  interface Web  >  js exporte la balise table de la page vers csv

js exporte la balise table de la page vers csv

不言
不言original
2018-07-05 17:50:492511parcourir

Cet article présente principalement l'exportation js de la balise table de la page vers csv. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer.

// En utilisant cette méthode de sauvegarde, le tableau doit intégrer un p et ne peut contenir aucun autre élément, sinon d'autres données apparaîtront lors du téléchargement via IE
 //tableid, le titre est le nom du fichier du fichier enregistré

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;
}

Vous pouvez essayer cette méthode si vous rencontrez quelque chose qui nécessite d'exporter des données pendant le développement (ps : la langue arabe a des bugs et il n'est pas recommandé de l'utiliser)

Le ci-dessus est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun. Utile, veuillez faire attention au site Web PHP chinois pour plus de contenu connexe !

Recommandations associées :

Analyse de l'objet d'erreur JavaScript

JS implémente une simple lecture en boucle par clic sur l'image

Convertir l'url au format JSON

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn