HTML表导出为XLSX,但Excel 2013不能打开它

这是我的function,把我的HTML表格变成一个Excel文件。 问题是,我需要保存为.xlsx的Excel文件,但我不能这样做。 有人帮忙吗?

function exceller() { var uri = 'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;content-disposition:attachment;base64,' , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel"><head><!--[if gte mso 9]><?xml version="1.0" encoding="UTF-8" standalone="yes"?><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]; }) } $('#toExcel').html($('#pztable').html()); var toExcel = $('#toExcel').html(); var ctx = { worksheet: name || '', table: toExcel }; var link = document.createElement("a"); link.download = "export.xlsx"; link.href = uri + base64(format(template, ctx)) link.click(); link.remove(); } 

这里是jsFiddle: https ://jsfiddle.net/jxz60kqj/

你有没有尝试过使用第三方jQuery插件? 我一直在使用jquery.table2excel.js ,它工作正常。

你需要包含JQuery插件和可以在这里find的Table2Excel插件。

码:

 $("button").click(function(){ $("#table2excel").table2excel({ // exclude CSS class exclude: ".noExl", name: "Worksheet Name", filename: "SomeFile" //do not include extension }); }); 

在这里演示:

http://www.jqueryscript.net/demo/Export-Html-Table-To-Excel-Spreadsheet-using-jQuery-table2excel/

小提琴: https : //jsfiddle.net/tbeckenhauer/mueqr96t/9/

如果你设置了href和一个下载属性,你可以下载它

HTML

 <a id="link" href="" download='blah.txt'>Download File!</a> 

JavaScript的

 var excelData = 'data:text/plain;charset=utf-8,' + encodeURIComponent('your data goes here'); $('#link').click(function(event) { $(event.target).attr('href', excelData); }); 

我解决了它。 我正在创build一个带有“xls格式的头元素”html表格 ,以便Excel可以真正读取,但是xlsx只是这种数据的一种不同types的格式。 它实际上是包装了许多xml 。 所以没有什么可以将html表导出为xlsx。 我用' ALASQL '来做到这一点。 它工作真棒。 我build议你使用' ALASQL '来解决这个问题。