Экспорт сайта в excel

127
02 января 2020, 16:20

на сайте находится несколько таблиц,в таблице одна колонка занимает изображение, данные в таблицу поступаю из бд через php, как мне экспортировать эту страницу в excel в формате .xlsx при условии что изображения тоже должны экспортироваться, перепробовал много различных как плагинов, остановился пока на этом:

<script> 
            $("#btnExport").click( 
                function () { 
                    tableToExcel('wear', 'price', 'name'); 
 
                }); 
 
            function getIEVersion() { 
                var rv = -1; 
                if (navigator.appName == 'Microsoft Internet Explorer') { 
                    var ua = navigator.userAgent; 
                    var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); 
                    if (re.exec(ua) != null) 
                        rv = parseFloat(RegExp.$1); 
                } 
                return rv; 
            } 
 
            function tableToExcel(table, sheetName, fileName) { 
                var ua = window.navigator.userAgent; 
                var msie = ua.indexOf("MSIE "); 
                if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // ie 
                { 
                    return fnExcelReport(table, fileName); 
                } 
 
                var uri = 'data:application/vnd.ms-excel;base64,', 
                    templateData = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>', 
                    base64Conversion = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }, 
                    formatExcelData = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) } 
 
                $("tbody > tr[data-level='0']").show(); 
 
                if (!table.nodeType) 
                    table = document.getElementById(table) 
 
                var ctx = { worksheet: sheetName || 'Worksheet', table: table.innerHTML } 
 
                var element = document.createElement('a'); 
                element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + base64Conversion(formatExcelData(templateData, ctx))); 
                element.setAttribute('download', fileName); 
                element.style.display = 'none'; 
                document.body.appendChild(element); 
                element.click(); 
                document.body.removeChild(element); 
 
                $("tbody > tr[data-level='0']").hide(); 
            } 
 
 
            function fnExcelReport(table, fileName) { 
 
                var tab_text = "<table border='2px'>"; 
                var textRange; 
 
                if (!table.nodeType) 
                    table = document.getElementById(table) 
 
                $("tbody > tr[data-level='0']").show(); 
                tab_text = tab_text + table.innerHTML; 
 
                tab_text = tab_text + "</table>"; 
                tab_text = tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); // reomves input params 
 
                txtArea1.document.open("txt/html", "replace"); 
                txtArea1.document.write(tab_text); 
                txtArea1.document.close(); 
                txtArea1.focus(); 
                sa = txtArea1.document.execCommand("SaveAs", false, fileName + ".xlsx"); 
                $("tbody > tr[data-level='0']").hide(); 
                return (sa); 
            } 
</script>

Но проблема в том, он экспортирует в .xls формате , а данный формат не открывает мобильный софт excel <<файл не поддерживается или же поврежден>>. Если есть решение данному вопросу буду признателен за помощь. Заранее спасибо.

READ ALSO
Как создать файл PDF из HTML кода или картинки в react-native используя expo?

Как создать файл PDF из HTML кода или картинки в react-native используя expo?

Как создать файл PDF из HTML кода или картинки в react-native используя expo?

124
Electron область с веб-страницы

Electron область с веб-страницы

Пытаюсь создать electron приложениеПоявилась проблема что размеры области, где отображается веб-страница не совпадает с указанными мною размерами...

130
Запись математических формул на языке HTML

Запись математических формул на языке HTML

Только не смейтесь над вопросомМожно ли использовать этот язык для полноценной записи формул?

159