表要优于onclick

我工作在IE9,我有以下代码下载一个Excel表格作为Excel电子表格:

<a id="toExcel" onclick="window.open('data:application/vnd.ms-excel,' + document.getElementById('resultsTable').outerHTML.replace(/ /g, '%20'));e.preventDefault();" href="javascript:void(0);">Excel</a> 

这适用于其他浏览器,如chrome,但不适用于IE9。 它只是打开一个新的选项卡与url栏中的代码。

我如何得到这个工作在IE9?

我已经尝试把onclick事件放在另一个元素,比如它没有工作的button。

用数据表的库似乎是添加了很多其他的东西到表中,我只想要这个function。

赏金脚注:

  • 必须在IE9上工作。

  • 请不要build议https://datatables.net 。 由于内部原因,我们不能使用这个build议。

  • 我很高兴从我已经尝试过的东西(请参阅前面的代码片断),只要它工作
  • 必须下载为xlsx,并且必须在Excel 2010中正确打开。
  • 该项目使用Sharepoint 2013和自定义js / jquery webpart。 我们已经dynamic地生成了一个html表格,需要能够像上面那样导出到excel。

谢谢你的帮助

正如已经提到的那样,服务器端的实现会更好。 创build一个AJAX调用你的控制器与适当的ID(包括需要查询您的数据),并将其发送回浏览器。 如果这种情况在你的情况下是不可能的,请看下面的post:

如何将“逗号”分隔符更改为blob csv中的其他内容?

我可以复制我自己的答案,但这是没有道理的;)

不完全是你的问题的解决scheme,但我也曾在“HTML表格到Excel”报告生成,我尝试了相同的代码作为你的,我也做了这个: http : //jsfiddle.net/chankeypathak/7cwZ9/但我一直面临像我连接的小提琴的问题,在那里你看到我用window.btoa方法,后来我知道它不支持IE9或更less。 所以我最终使用了Datatables的TableTools插件 。 有很多选项,导出到CVS,Excel,PDF,复制到剪贴板等。