从javascript或Jquery创build简单的xlsx(excel文件)
这是小提琴https://jsfiddle.net/ym4egje0/
我有两件事要问
-
这是创build一个XLS,如何创build一个XLSX文件,它不工作在IE浏览器,只适用于谷歌浏览器,如何使它在IE中工作?
-
我想把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; }