with tabla sheetjs exportar data bootstrap javascript html html5 excel export-to-excel

tabla - json to excel javascript



JavaScript: exporta datos de tablas HTML a Excel (4)

Recomiendo otro método de formato. la micro-plantilla John Resig es una herramienta muy buena y simple para hacer lo que necesita. ( ejohn microtemplating )

(function(){ var cache = {}; this.tmpl = function tmpl(str, data){ // Figure out if we''re getting a template, or if we need to // load the template - and be sure to cache the result. var fn = !//W/.test(str) ? cache[str] = cache[str] || tmpl(document.getElementById(str).innerHTML) : // Generate a reusable function that will serve as a template // generator (and which will be cached). new Function("obj", "var p=[],print=function(){p.push.apply(p,arguments);};" + // Introduce the data as local variables using with(){} "with(obj){p.push(''" + // Convert the template into pure JavaScript str.replace(/[/r/t/n]/g, " ") .split("{{").join("/t") .replace(/((^|}})[^/t]*)''/g, "$1/r") .replace(//t=(.*?)}}/g, "'',$1,''") .split("/t").join("'');") .split("}}").join("p.push(''") .split("/r").join("//'") + "'');}return p.join('''');"); // Provide some basic currying to the user return data ? fn( data ) : fn; }; })();

Es muy facíl de usar. Esto permite no solo mostrar variables entre HTML sino también ejecutar código JavaScript

Su cadena de plantilla necesita algunas modificaciones para trabajar con esta microtemplate.

{{for(var i=0; i<tables.length;i++){ }} <table> {{=tables[i]}} </table> {{ } }}

finalmente solo necesita seleccionar todas las tablas que aparecen en su ejemplo

document.getElementsByTagName("table");

puedes ver cómo funciona http://jsfiddle.net/Scipion/P8rpn/1/


Estoy tratando de convertir tablas HTML a Excel, lo he intentado con una función de JavaScript que convierte una tabla simple en Excel, está funcionando bien. Si tengo varias tablas, ¿cómo podré agregar todos los datos de la tabla en el archivo de Excel? esto es lo que intenté. testTable 2 tablas y proporcioné el índice de tabla testTable y testTable1 .

¿Cómo pasaré estas 2 ID de tabla a la función de JavaScript al hacer clic en el botón? ahora, al hacer clic en el botón, solo la primera tabla se exporta a Excel, ya que solo paso ''testTable'' . ¿Cómo podré exportar varias tablas, por ejemplo: testTable , testTable1 en Excel?

Aquí está el JavaScript:

<script> var tableToExcel = (function() { var uri = ''data:application/vnd.ms-excel;base64,'' , template = ''<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]--> </head> <body> <table>{table}</table></body></html>'' , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) } , format = function(s, c) { return s.replace(/{(/w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = {worksheet: name || ''Worksheet'', table: table.innerHTML} window.location.href = uri + base64(format(template, ctx)) } })() </script>

Aquí está la parte HTML,

<table id="testTable"> <thead> <tr> <th>Name</th> <th>ACP</th> <th>OEMCP</th> <th>Unix<br> NT 3.1</th> <th>Unix<br> NT 3.51</th> <th>Unix<br> 95</th> </tr> </thead> </table> <table id="testTable1"> <thead> <tr> <th>Name</th> <th>ACP</th> <th>OEMCP</th> <th>Windows<br> NT 3.1</th> <th>Windows<br> NT 3.51</th> <th>Windows<br> 95</th> </tr> </thead> </table>

Por favor, hágamelo saber, ¿cómo se puede hacer esto?
Gracias


crear una función y pasarle el ID de tabla

function passing_id_to_excel(tableID){ var myTableid = document.getElementById(tableID) //remaining code }


  1. Agregue una casilla de verificación para cada tabla. Use javascript para procesar los que están marcados.
  2. En caso de que solo quiera convertir todas las tablas, podría usar $(''table'').each(function() { do something }) .