从javascript或Jquery创build简单的xlsx(excel文件)

这是小提琴https://jsfiddle.net/ym4egje0/

我有两件事要问

  1. 这是创build一个XLS,如何创build一个XLSX文件,它不工作在IE浏览器,只适用于谷歌浏览器,如何使它在IE中工作?

  2. 我想把ColumnHead列标题文本和消息1和消息2应该是连续的行。

必须把(。)的索引切成行。

HTML

 <input id="btnExport" type="button" value = "Generate File" /> 

JS / jQuery的

 $("#btnExport").click(function (e) { var ColumnHead = "Column Header Text"; var Messages = "\n message1.\n message2."; window.open('data:application/vnd.ms-excel,' + Messages); e.preventDefault(); }); 

看看这个小提琴来解决你的问题。 它会为Google chrome和IE创build文件

https://jsfiddle.net/shaswatatripathy/fo4ugmLp/1/

HTML

 <input type="button" id="test" onClick="fnExcelReport();" value="download" /> <div id='MessageHolder'></div> <a href="#" id="testAnchor"></a> 

JS

 var tab_text; var data_type = 'data:application/vnd.ms-excel'; function CreateHiddenTable(ListOfMessages) { var ColumnHead = "Column Header Text"; var TableMarkUp='<table id="myModifiedTable" class="visibilityHide"><thead><tr><td><b>'+ColumnHead+'</b></td> </tr></thead><tbody>'; for(i=0; i<ListOfMessages.length; i++){ TableMarkUp += '<tr><td>' + ListOfMessages[i] +'</td></tr>'; } TableMarkUp += "</tbody></table>"; $('#MessageHolder').append(TableMarkUp); } function fnExcelReport() { var Messages = "\n message1.\n message2."; var ListOfMessages = Messages.split("."); CreateHiddenTable(ListOfMessages); tab_text = '<html xmlns:x="urn:schemas-microsoft-com:office:excel">'; tab_text = tab_text + '<head><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>'; tab_text = tab_text + '<x:Name>Error Messages</x:Name>'; tab_text = tab_text + '<x:WorksheetOptions><x:Panes></x:Panes></x:WorksheetOptions></x:ExcelWorksheet>'; tab_text = tab_text + '</x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>'; tab_text = tab_text + "<table border='1px'>"; tab_text = tab_text + $('#myModifiedTable').html();; tab_text = tab_text + '</table></body></html>'; data_type = 'data:application/vnd.ms-excel'; var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) { if (window.navigator.msSaveBlob) { var blob = new Blob([tab_text], { type: "application/csv;charset=utf-8;" }); navigator.msSaveBlob(blob, 'Test file.xls'); } } else { console.log(data_type); console.log(tab_text); $('#testAnchor')[0].click() } $('#MessageHolder').html(""); } $($("#testAnchor")[0]).click(function(){ console.log(data_type); console.log(tab_text); $('#testAnchor').attr('href', data_type + ', ' + encodeURIComponent(tab_text)); $('#testAnchor').attr('download', 'Test file.xls'); }); 

CSS

 .visibilityHide { visibility:hidden; }