JS导出网页数据到EXCEL

想得到的效果是,在网页上点击导出按钮,弹出文件保存框,输入文件名并选择路径后保存。可能是由于浏览器的安全机制,一直没能找到合适的解决方案,就采用了其它的一些替代方案。 

思路是:后台一般处理程序查询数据库在服务器上生成excel文件,再将文件路径传递给前台,前台生成下载链接

由于ActiveX只有IE支持,不能以ActiveXObject方式打开excel文件,可以在前台可以通过a标签来生成下载链接,也可以直接跳转url或下载文件

 1 //导出数据
 2 function exportexcel(postdata) {
 3     $.ajax({
 4         url: "../Handler/ExportExcelHandler.ashx",
 5         type: "POST",
 6         dataType: "TEXT",
 7         data: postdata,
 8         success: function (responsedata) {
 9             var url = '../export/' + responsedata;
10             var elemIF = document.createElement("iframe");
11             elemIF.src = url;
12             elemIF.style.display = "none";
13             document.body.appendChild(elemIF);
14         },
15         error: function (XMLHttpRequest, textStatus, errorThrown) {
16             alert("导出失败:" + textStatus);
17         }
18     });
19 }

还有一种方法是使用window.open()方法,但是会被多数浏览器拦截,因此不推荐使用

原文地址:https://www.cnblogs.com/yaotome/p/7206048.html