¿Como exportar a excel respetando caracteres especiales, tildes, acentos?

Tengo una duda como podría hacer que al momento de exportar una tabla html a excel se respeten los acentos tildes etc, ¿con este código que aquí les presento si se exporta bien la tabla pero donde lleva acentos sale mal el nombre como puedo solucionarlo?.

Se que cuando se exporta un archivo por default va con una codificación utf8 pero como hago para que a la hora de abrir el archivo de excel aparezca correctamente sin necesidad de configurar el archivo en excel cambiando la codificación. (El archivo es xls no csv)

Ejemplo de error: vehículo sale así : Vehículo

Código para exportar:

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))
  }
})()

1 Respuesta

Respuesta
1

Yo te recomendaría hacerlo del lado del servidor. Podes usar phpspreadsheet. Podés ver ejemplos en https://academy.leewayweb.com/como-interactuar-con-excel-desde-php/ 

¡Gracias! 

¡De nada! Me alegra que te haya servido :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas