Javascript 将大量数据导出到Excel不起作用

Javascript 将大量数据导出到Excel不起作用,javascript,c#,jquery,asp.net,excel,Javascript,C#,Jquery,Asp.net,Excel,MVC。我在网页中有一个表格,当表格有1000多行,500行或更少行时,导出到Excel不起作用。代码如下: var tableToExcel = (function () { var uri = 'data:application/vnd.ms-excel;base64,' , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com

MVC。我在网页中有一个表格,当表格有1000多行,500行或更少行时,导出到Excel不起作用。代码如下:

var tableToExcel = (function () {
var uri = 'data:application/vnd.ms-excel;base64,'
    , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><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]--><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></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]; }) }
return function (table, name) {
    if (!table.nodeType) table = document.getElementById(table)
    var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML }
    window.location.href = uri + base64(format(template, ctx))
}})()

$("#imgExcel").click(function () {
        tableToExcel('tblEquipment', 'Equipment');
    });
var tableToExcel=(函数(){
var uri='data:application/vnd.ms excel;base64,'
,模板=“{table}”
,base64=函数{return window.btoa(unescape(encodeURIComponent))}
,format=函数(s,c){返回s.replace(/{(\w+)}/g,函数(m,p){返回c[p];})}
返回函数(表、名称){
如果(!table.nodeType)table=document.getElementById(table)
var ctx={工作表:名称| |'工作表',表:table.innerHTML}
window.location.href=uri+base64(格式(模板,ctx))
}})()
$(“#imgExcel”)。单击(函数(){
tableToExcel(“T设备”、“设备”);
});

怎么了?

大多数浏览器对URL的长度都有限制。您可能超出了该限制。Tim Williams浏览器显示所有行时没有问题,当我按下导出按钮时,什么都没有发生
window.location.href=uri+base64(format(template,ctx))
如果传递给
base64()
的字符串太长,则此操作将不会成功。编辑-在进一步阅读时,限制可能比我想象的要高,但你仍然应该调查这种可能性。你用的是什么浏览器?我用的是谷歌Chrome,我认为base64有一个限制,我需要找到另一种方法来导出大量的日期