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
. 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