Saltar al contenido

Cómo exportar una tabla html para sobresalir usando javascript

Es fundamental interpretar el código correctamente antes de utilizarlo a tu proyecto y si ttienes algo que aportar puedes decirlo en los comentarios.

Solución:

Solo funciona en Mozilla, Chrome y Safari.

$(function() 
  $('button').click(function() 
    var url = 'data:application/vnd.ms-excel,' + encodeURIComponent($('#tableWrap').html())
    location.href = url
    return false
  )
);




A B C
1 2 3
1 2 3
1 2 3
1 2 3

Consulte https://github.com/linways/table-to-excel. Es un contenedor para exceljs / exceljs para exportar tablas html a xlsx.

TableToExcel.convert(document.getElementById("simpleTable1"));

Sample Excel
Italic and horizontal center in Arial
Col 1 (number) Col 2 Wrapped Text Col 4 (date) Col 5
1 ABC1 Striked Text 05-20-2018 2210.00
2 ABC 2 Merged cell 05-21-2018 230.00
05-22-2018 2493.00
Hyperlink 4933.00
مرحبا 2009.00
All borders
true false 1 0 Value Error
All borders separately
Excluded row Something
Included Cell Excluded Cell Included Cell

Esto crea un xlsx válido en el lado del cliente. También admite algunos estilos básicos. Consulte https://codepen.io/rohithb/pen/YdjVbb para ver un ejemplo de trabajo.

La razón por la que la solución que encontró en Internet no funciona es por la línea que comienza var colCount. La variable mytable solo tiene dos elementos que son

y

. los var colCount la línea está buscando todos los elementos dentro mytable que son

. Lo mejor que puede hacer es darle una identificación a su

y

y luego tome todos los valores basados ​​en eso. Di que tuviste

:

function write_headers_to_excel() 

  str="";

  var myTableHead = document.getElementById('headers');
  var rowCount = myTableHead.rows.length;
  var colCount = myTableHead.getElementsByTagName("tr")[0].getElementsByTagName("th").length; 

var ExcelApp = new ActiveXObject("Excel.Application");
var ExcelSheet = new ActiveXObject("Excel.Sheet");
ExcelSheet.Application.Visible = true;

for(var i=0; i

y luego hacer lo mismo con el

etiqueta.

EDITAR: También recomendaría usar jQuery. Acortaría esto a:

function write_to_excel() 

 var ExcelApp = new ActiveXObject("Excel.Application");
 var ExcelSheet = new ActiveXObject("Excel.Sheet");
 ExcelSheet.Application.Visible = true; 

  $('th, td').each(function(i)
    ExcelSheet.ActiveSheet.Cells(i+1,i+1).Value = this.innerHTML;
  );

Ahora, por supuesto, esto le dará algunos problemas de formato, pero puede averiguar cómo desea formatearlo en Excel.

EDITAR: Para responder a su pregunta sobre cómo hacer esto para n número de tablas, jQuery ya lo hará. Para hacerlo en JavaScript sin formato, tome todas las tablas y luego modifique la función para poder pasar la tabla como parámetro. Por ejemplo:

var tables = document.getElementsByTagName('table');
for(var i = 0; i < tables.length; i++)

  write_headers_to_excel(tables[i]);
  write_bodies_to_excel(tables[i]);

Entonces cambia el function write_headers_to_excel() para function write_headers_to_excel(table). Entonces cambia var myTableHead = document.getElementById('headers'); para var myTableHead = table.getElementsByTagName('thead')[0];. Lo mismo con tu write_bodies_to_excel() o como quieras configurarlo.

Te invitamos a apoyar nuestra tarea escribiendo un comentario o puntuándolo te estamos eternamente agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *