Экспорт данных из таблицы HTML через JS в xls, не оставляет значений такими, как есть - PullRequest
0 голосов
/ 26 ноября 2018

Я экспортирую данные с использованием JavaScript, но мои значения не остаются десятичными.Например, 56.00 превращается в 56. Я пытался использовать .toFixed (), но это не помогает.

У меня много HTML и JS-кода, поэтому я не знаю, какую именно часть кода вы хотели бывидеть.Но, может быть, кто-то решил ту же проблему?

Вот мой HTML-код экспорта JS - .xls код.

function Exc(elem){

    var tables = document.querySelectorAll("#tableWrapper .col-lg-12"); 
    var tab_text = "";

    // Add variable with names of all tables
    var fileName = "(";

    if(tables.className != "hidden")
    {
        for(var i = 0; i < tables.length; i++)
        {   
            tab_text += "<table border='3px'><tr bgcolor='#87AFC6'>";

            // Get name, manufacturer & standard
            var name = tables[i].querySelector("h2").innerHTML;

            // Set table names as filename
            if(i == tables.length - 1)
                fileName += name + ")";
            else
                fileName += name + ", ";

            var manufacturer = tables[i].querySelectorAll(".col-md-6")[1].querySelectorAll("li")[0].innerHTML;
            var standard = tables[i].querySelectorAll(".col-md-6")[1].querySelectorAll("li")[1].innerHTML;

            // Set name, manufacturer & standard
            tab_text += "<div><h2>" + name + "</h2>";
            tab_text +=  manufacturer == " " ? "" : "<li>" + manufacturer + "</li>";
            tab_text += standard == "" ? "</div>" : "<li>" + standard + "</li></div>";

            // Get current table
            var table = tables[i].querySelector("table");

            // Get all properties
            var prop = table.querySelectorAll("thead .tsl-colgroup");

            tab_text += "<th class=\"tsl-series\"></th>";
            for(var j = 0 ; j < prop.length ; j++) 
            {     
                tab_text += prop[j].outerHTML;
            }
            tab_text += "</tr>";

            // Get all measures
            var mes = table.querySelectorAll("tbody tr th");

            tab_text += "<th class=\"tsl-series active\" ><strong>Profile-Loremipsum</strong></th>"
            for(var j = 1 ; j < mes.length ; j++) 
            {     
                tab_text += "<th class=\"tsl-cell\" onclick=\"sortListByProperty(this)\">";
                //th[j].firstChild.textContent +(th[j].childElementCount == 2 ? th[j].children[0].outerHTML: "");
                tab_text += mes[j].childElementCount == 2 ? mes[j].firstChild.textContent + mes[j].children[0].outerHTML + "<br>" : mes[j].firstChild.textContent + "<br>";
                tab_text += mes[j].lastElementChild.outerHTML + "</th>";
            }
            tab_text += "</tr>";

            // Get all demensions
            var dem = table.querySelectorAll("tbody tr");

            for(var j = 1 ; j < dem.length; j++) 
            {     
                if(dem[j].className != "hidden")
                {
                    tab_text += "<tr>"
                    tab_text += "<td class=\"tsl-series active\"><strong>" + dem[j].querySelectorAll("td strong")[0].innerHTML + "</strong>";

                    var cells = dem[j].querySelectorAll(".tsl-cell");
                    for(var p = 0; p < cells.length; p++)
                    {
                        var numberFloat = parseFloat(cells[p].querySelector("a").innerHTML);
                        tab_text += "<td></a>" + numberFloat.toFixed(2) + "</a></td>";
                    }
                }
            }   

            tab_text += "</table>";
        }
    }

    var result = "data:application/vnd.ms-excel," + encodeURIComponent(tab_text);
    elem.href = result;
    elem.download = fileName + ".xls";
}

Ниже вы можете увидеть, как выглядят значения до экспорта и после.

до экспорта

после экспорта в .xls

...