在Excel工作表中导出大量数据

我有用户可以select超过2000行的用户界面,点击导出button后,所有选定的值将被导出到Excel。 但是,当我尝试导出超过1000个数据页面被冻结,它不会导出。 以下是代码: –

function get(){ var table = document.getElementById('table_0'); var numRows = table.rows.length; var category = ""; var rows = "<tr><td>Date</td><td>Number</td><td>Title</td></tr>"; for(var i=0;i<numRows;i++){ var values = []; var cells1 = table.rows[i].cells; var checkBoxes = cells1[0].getElementsByTagName('input'); for(var counter=1; counter<checkBoxes.length; counter++){ if(checkBoxes[counter].type =='checkbox' && checkBoxes[counter].checked == true){ for(var ic=1,it=(cells1.length-1);ic<it;ic++){ if(cells1[0].innerHTML != null){ divs=cells1[ic].textContent; values.push(divs); } } rows = rows + "<tr><td>" + values[0].trim() + "</td><td>" + values[1].trim() + "</td><td>" + values[2].trim() + "</td></tr>"; } } console.log(rows); console.log("done"); $("#resultTable").html(rows); } 

下面是在IE中导出和下载excel的代码。

 function ExportToCsv(tableName, name) { get(); 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 = $('#' + tableName).clone(); exportTable.find('input').each(function (index, elem) { $(elem).remove(); }); $("#myDiv").hide(); tab_text = tab_text + exportTable.html(); tab_text = tab_text + '</table></body></html>'; var data_type = 'data:application/vnd.ms-excel'; //var data_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'; var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); var fileName = name + '_' + parseInt(Math.random() * 10000000000) + '.xls'; 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;" //type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8;" }); navigator.msSaveBlob(blob, fileName); } } else { $('#Approve').attr('href', data_type + ', ' + encodeURIComponent(tab_text)); $('#Approve').attr('download', fileName); } 

}

为什么这个代码不能导出大于1000的大数据? 任何帮助?