Экспортируйте в excel таблицу с помощью jquery без пустых столбцов

#javascript #html #jquery

#язык JavaScript #HTML #jquery

Вопрос:

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

мой html-код таков:

 lt;table id='table' class='table table-bordered table-striped'gt; lt;tr class='superior'gt; lt;th class='titulo'gt;Nombrelt;/thgt; lt;th class='titulo'gt;Apellidolt;/thgt;lt;/trgt;lt;tr class='superior'gt; lt;th class='th-filtros'gt;lt;input class='form-control' id='input-nombre' type='text' placeholder='Buscar..'gt;lt;/thgt; lt;th class='th-filtros'gt;lt;input class='form-control' id='input-apellido' type='text' placeholder='Buscar..'gt;lt;/thgt;lt;/trgt;lt;tbody id='myTable'gt; lt;trgt;  lt;td class='nombre-td'gt;Datalt;/tdgt;  lt;td class='apellido-td'gt;Datalt;/tdgt; lt;/trgt;lt;/tbodygt;lt;/tablegt;  

мой js-код таков:

 $(document).ready(function() {  $("#btnExport").click(function() {  tableToExcel('table', 'test', 'usuarios');  }  ); });   function getIEVersion() // Returns the version of Windows Internet Explorer or a -1 // (indicating the use of another browser). {  var rv = -1; // Return value assumes failure.  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 gt; 0 || !!navigator.userAgent.match(/Trident.*rv:11./)) // If Internet Explorer  {  return fnExcelReport(table, fileName);  }   var uri = 'data:application/vnd.ms-excel;base64,',  templateData = 'lt;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"gt;lt;headgt;lt;!--[if gte mso 9]gt;lt;xmlgt;lt;x:ExcelWorkbookgt;lt;x:ExcelWorksheetsgt;lt;x:ExcelWorksheetgt;lt;x:Namegt;{worksheet}lt;/x:Namegt;lt;x:WorksheetOptionsgt;lt;x:DisplayGridlines/gt;lt;/x:WorksheetOptionsgt;lt;/x:ExcelWorksheetgt;lt;/x:ExcelWorksheetsgt;lt;/x:ExcelWorkbookgt;lt;/xmlgt;lt;![endif]--gt;lt;meta http-equiv="content-type" content="text/plain; charset=UTF-8"/gt;lt;/headgt;lt;bodygt;lt;tablegt;{table}lt;/tablegt;lt;/bodygt;lt;/htmlgt;',  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 gt; 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 gt; tr[data-level='0']").hide(); }  function fnExcelReport(table, fileName) {   var tab_text = "lt;table border='2px'gt;";  var textRange;   if (!table.nodeType)  table = document.getElementById(table)   $("tbody gt; tr[data-level='0']").show();  tab_text = tab_text   table.innerHTML;   tab_text = tab_text   "lt;/tablegt;";  tab_text = tab_text.replace(/lt;A[^gt;]*gt;|lt;/Agt;/g, ""); //remove if u want links in your table  tab_text = tab_text.replace(/lt;img[^gt;]*gt;/gi, ""); // remove if u want images in your table  tab_text = tab_text.replace(/lt;input[^gt;]*gt;|lt;/inputgt;/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   ".xls");  $("tbody gt; tr[data-level='0']").hide();  return (sa); }