如何使用Javascript导出Excel文件?

如何使用Javascript导出Excel文件?,javascript,excel,google-chrome,Javascript,Excel,Google Chrome,我需要为Chrome浏览器导出“.XLSX”文件中的数据,下面的代码适用于IE 但处于else状态的代码正在创建download.xls文件 sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text)); 以下是单击按钮时使用的代码: function fnExcelReport() { var tab_text="<table border='2px'><tr

我需要为Chrome浏览器导出“.XLSX”文件中的数据,下面的代码适用于IE

但处于else状态的代码正在创建download.xls文件

sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text));  
以下是单击按钮时使用的代码:

function fnExcelReport()
{
    var tab_text="<table border='2px'><tr bgcolor='#87AFC6'>";
    var textRange; var j=0;
    tab = document.getElementById('headerTable'); // id of table

    for(j = 0 ; j < tab.rows.length ; j++) 
    {     
        tab_text=tab_text+tab.rows[j].innerHTML+"</tr>";
        //tab_text=tab_text+"</tr>";
    }

    tab_text=tab_text+"</table>";
    tab_text= tab_text.replace(/<A[^>]*>|<\/A>/g, "");//remove if u want links in your table
    tab_text= tab_text.replace(/<img[^>]*>/gi,""); // remove if u want images in your table
    tab_text= tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); // reomves input params

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE "); 

    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))      // If Internet Explorer
    {
        txtArea1.document.open("txt/html","replace");
        txtArea1.document.write(tab_text);
        txtArea1.document.close();
        txtArea1.focus(); 
        sa=txtArea1.document.execCommand("SaveAs",true,"ABCD.xlsx");
    }  
    else                 //other browser not tested on IE 11
        sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text));  

    return (sa);
}
您可以这样做:

saveAs(blob,文件名)

函数报告(id、名称){
var tab_text='';
tab_text=tab_text+'
';
tab_text=tab_text+‘测试表’;
tab_text=tab_text+'
';
tab_text=tab_text+“”;
tab_text=tab_text+“”;
var exportTable=$('#'+id).clone();
exportTable.find('input').each(函数(索引,elem){$(elem.remove();});
tab_text=tab_text+exportTable.html();
tab_text=tab_text+“”;
var fileName=name+'.'+parseInt(Math.random()*1000000000)+'.xls';
//保存文件
var blob=new blob([tab_text],{type:“application/vnd.ms excel;charset=utf-8”})
saveAs(blob,文件名);
}`

Please suggest me解决方案可能与上述代码重复,我是javascript新手,无法在建议链接中实现该解决方案。内容中只有用于填充excel文档的示例。这在Google Chrome上不起作用。另外,我需要.Xlsx格式。我还用一个新的代码批编辑了我的问题,请建议Xlsx文件格式还需要什么
var a = document.createElement('a');
var data_type = 'data:application/vnd.ms-excel';
var table_div = tab_text;    //Your tab_text   
var table_html = table_div.replace(/ /g, '%20');
a.href = data_type + ', ' + table_html;
//setting the file name
a.download = 'exported_table.xlsx';
//triggering the function
a.click();
function fnExcelReport(id, name) {
var 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>Test Sheet</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'>";
var exportTable = $('#' + id).clone();
exportTable.find('input').each(function (index, elem) { $(elem).remove(); });
tab_text = tab_text + exportTable.html();
tab_text = tab_text + '</table></body></html>';
var fileName = name + '_' + parseInt(Math.random() * 10000000000) + '.xls';

//Save the file
var blob = new Blob([tab_text], { type: "application/vnd.ms-excel;charset=utf-8" })
window.saveAs(blob, fileName);
}`