13

我有以下将 HTML 导出到 excel 的函数:

function generateexcel(tableid) {
  var table= document.getElementById(tableid);
  var html = table.outerHTML;
  window.open('data:application/vnd.ms-excel,' + encodeURIComponent(html));
}

问题是,我不能保存一个特定的文件名,所以用户会得到类似的东西:

是否要保存 %3Ctable%20id%3D%22tableRslts%22%20tabindex%3D%2235%22%20 文件?

保存的文件是这样的:

IytvT8Jo.xls.part.xls(至少在我们将使用的目标浏览器 Firefox 中)

你会如何解决这个问题?

4

2 回答 2

3

您可以查看两个选项:

  • Filesaver API是新的“HTML5”功能,允许 /exactly/ 这个。只有一个小问题:Firefox 还不支持相关部分。如果你想使用它,有一个很好的包装库可以让你更轻松:filesaver.js
  • Downloadify也是一个为此而创建的 Flash 工具,您可以在此处找到它。('缺点':闪光)
于 2012-07-03T12:18:24.557 回答
1

我不确定你是否已经这样做了。您可能需要在您的 aspx 页面中处理以下内容:

$(window).load(function(){
$( "#clickExcel" ).click(function() {  
var dtltbl = $('#dtltbl').html();    `enter code here`
window.open('data:application/vnd.ms-excel,' + $('#dtltbl').html());
});
});//]]>  

在上面的脚本中,#dtltbl 是表 ID。

以下代码需要在您的服务器端代码中,然后您的问题将得到解决。

           Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");
于 2012-07-10T04:43:08.113 回答