我已经研究了几天,发现遇到了this one,它在Chrome和Firefox上工作正常,但不适用于IE。我遇到过this one from stackoverflow,据说它对IE友好,但是在var objExcel = new ActiveXObject("Excel.Application");上出现了问题。我已经尝试过xlsx.js,但是不能使用Flash。

我研究了CSV,但遇到类似的问题,例如IE中的URI,这会造成阻塞。

我试图将其保留在客户端(因为我已经将数据存储在本地),但是我必须具有IE 9+(因为我的主要用户将使用IE9 [不是我的选择])。

任何解决方案,还是我为此坚持在服务器端进行?

最佳答案

不幸的是,我无法访问IE9。这个解决方案对您有用吗? http://bl.ocks.org/insin/1031969

如何设置data:网址,如下所示:

window.location.href = 'data:application/vnd.ms-excel;base64,PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4bWxuczp4PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpleGNlbCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAiPjxoZWFkPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPjx4OkV4Y2VsV29ya2Jvb2s+PHg6RXhjZWxXb3Jrc2hlZXRzPjx4OkV4Y2VsV29ya3NoZWV0Pjx4Ok5hbWU+VzNDIEV4YW1wbGUgVGFibGU8L3g6TmFtZT48eDpXb3Jrc2hlZXRPcHRpb25zPjx4OkRpc3BsYXlHcmlkbGluZXMvPjwveDpXb3Jrc2hlZXRPcHRpb25zPjwveDpFeGNlbFdvcmtzaGVldD48L3g6RXhjZWxXb3Jrc2hlZXRzPjwveDpFeGNlbFdvcmtib29rPjwveG1sPjwhW2VuZGlmXS0tPjwvaGVhZD48Ym9keT48dGFibGU+PGNhcHRpb24+Q09ERS1QQUdFIFNVUFBPUlQgSU4gTUlDUk9TT0ZUIFdJTkRPV1M8L2NhcHRpb24+PGNvbGdyb3VwIGFsaWduPSJjZW50ZXIiPjwvY29sZ3JvdXA+PGNvbGdyb3VwIGFsaWduPSJsZWZ0Ij48L2NvbGdyb3VwPjxjb2xncm91cCBzcGFuPSIyIiBhbGlnbj0iY2VudGVyIj48L2NvbGdyb3VwPjxjb2xncm91cCBzcGFuPSIzIiBhbGlnbj0iY2VudGVyIj48L2NvbGdyb3VwPjx0aGVhZCB2YWxpZ249InRvcCI+PHRyPjx0aD5Db2RlLVBhZ2U8YnI+SUQ8L3RoPjx0aD5OYW1lPC90aD48dGg+QUNQPC90aD48dGg+T0VNQ1A8L3RoPjx0aD5XaW5kb3dzPGJyPk5UIDMuMTwvdGg+PHRoPldpbmRvd3M8YnI+TlQgMy41MTwvdGg+PHRoPldpbmRvd3M8YnI+OTU8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+PHRyPjx0ZD4xMjAwPC90ZD48dGQgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICMwMGY7IGNvbG9yOiAjZmZmIj5Vbmljb2RlIChCTVAgb2YgSVNPL0lFQy0xMDY0Nik8L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD5YPC90ZD48dGQ+WDwvdGQ+PHRkPio8L3RkPjwvdHI+PHRyPjx0ZD4xMjUwPC90ZD48dGQgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkIj5XaW5kb3dzIDMuMSBFYXN0ZXJuIEV1cm9wZWFuPC90ZD48dGQ+WDwvdGQ+PHRkPjwvdGQ+PHRkPlg8L3RkPjx0ZD5YPC90ZD48dGQ+WDwvdGQ+PC90cj48dHI+PHRkPjEyNTE8L3RkPjx0ZD5XaW5kb3dzIDMuMSBDeXJpbGxpYzwvdGQ+PHRkPlg8L3RkPjx0ZD48L3RkPjx0ZD5YPC90ZD48dGQ+WDwvdGQ+PHRkPlg8L3RkPjwvdHI+PHRyPjx0ZD4xMjUyPC90ZD48dGQ+V2luZG93cyAzLjEgVVMgKEFOU0kpPC90ZD48dGQ+WDwvdGQ+PHRkPjwvdGQ+PHRkPlg8L3RkPjx0ZD5YPC90ZD48dGQ+WDwvdGQ+PC90cj48dHI+PHRkPjEyNTM8L3RkPjx0ZD5XaW5kb3dzIDMuMSBHcmVlazwvdGQ+PHRkPlg8L3RkPjx0ZD48L3RkPjx0ZD5YPC90ZD48dGQ+WDwvdGQ+PHRkPlg8L3RkPjwvdHI+PHRyPjx0ZD4xMjU0PC90ZD48dGQ+V2luZG93cyAzLjEgVHVya2lzaDwvdGQ+PHRkPlg8L3RkPjx0ZD48L3RkPjx0ZD5YPC90ZD48dGQ+WDwvdGQ+PHRkPlg8L3RkPjwvdHI+PHRyPjx0ZD4xMjU1PC90ZD48dGQ+SGVicmV3PC90ZD48dGQ+WDwvdGQ+PHRkPjwvdGQ+PHRkPjwvdGQ+PHRkPjwvdGQ+PHRkPlg8L3RkPjwvdHI+PHRyPjx0ZD4xMjU2PC90ZD48dGQ+QXJhYmljPC90ZD48dGQ+WDwvdGQ+PHRkPjwvdGQ+PHRkPjwvdGQ+PHRkPjwvdGQ+PHRkPlg8L3RkPjwvdHI+PHRyPjx0ZD4xMjU3PC90ZD48dGQ+QmFsdGljPC90ZD48dGQ+WDwvdGQ+PHRkPjwvdGQ+PHRkPjwvdGQ+PHRkPjwvdGQ+PHRkPlg8L3RkPjwvdHI+PHRyPjx0ZD4xMzYxPC90ZD48dGQ+S29yZWFuIChKb2hhYik8L3RkPjx0ZD5YPC90ZD48dGQ+PC90ZD48dGQ+PC90ZD48dGQ+Kio8L3RkPjx0ZD5YPC90ZD48L3RyPjwvdGJvZHk+PHRib2R5Pjx0cj48dGQ+NDM3PC90ZD48dGQ+TVMtRE9TIFVuaXRlZCBTdGF0ZXM8L3RkPjx0ZD48L3RkPjx0ZD5YPC90ZD48dGQ+WDwvdGQ+PHRkPlg8L3RkPjx0ZD5YPC90ZD48L3RyPjx0cj48dGQ+NzA4PC90ZD48dGQ+QXJhYmljIChBU01PIDcwOCk8L3RkPjx0ZD48L3RkPjx0ZD5YPC90ZD48dGQ+PC90ZD48dGQ+PC90ZD48dGQ+WDwvdGQ+PC90cj48dHI+PHRkPjcwOTwvdGQ+PHRkPkFyYWJpYyAoQVNNTyA0NDkrLCBCQ09OIFY0KTwvdGQ+PHRkPjwvdGQ+PHRkPlg8L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD5YPC90ZD48L3RyPjx0cj48dGQ+NzEwPC90ZD48dGQ+QXJhYmljIChUcmFuc3BhcmVudCBBcmFiaWMpPC90ZD48dGQ+PC90ZD48dGQ+WDwvdGQ+PHRkPjwvdGQ+PHRkPjwvdGQ+PHRkPlg8L3RkPjwvdHI+PHRyPjx0ZD43MjA8L3RkPjx0ZD5BcmFiaWMgKFRyYW5zcGFyZW50IEFTTU8pPC90ZD48dGQ+PC90ZD48dGQ+WDwvdGQ+PHRkPjwvdGQ+PHRkPjwvdGQ+PHRkPlg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvYm9keT48L2h0bWw+';


如果这不起作用,那么我认为您有两种选择:


使用服务器端组件准备下载。这可能是一个非常简单的组件,仅将GET参数作为文件返回。
向用户显示一个包含数据的页面,然后让他们将其复制到Excel中。您可以使用制表符分隔的文本或HTML表-其中任何一种都应很好地粘贴到电子表格中。

09-07 20:19
查看更多