将HTML表导出为Excel JavaScript函数添加选择文件名

VSP*_*VSP 13 javascript asp.net excel export export-to-excel

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

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

问题是,我无法保存特定的文件名,因此用户可以获得如下内容:

您要保存%3Ctable%20id%3D%22tableRslts%22%20tabindex%3D%2235%22%20 file?

保存的文件如下:

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

你会如何解决这个问题?

Dav*_*der 3

您可以考虑以下两个选项:

  • Filesaver API是新的“HTML5”功能,允许/准确地/实现这一点。只有一个小问题:Firefox 尚不支持相关部分。如果你想使用它,有一个很好的包装库,可以让你更轻松地使用它:filesaver.js
  • Downloadify是一个专门为此而创建的 flash 工具,您可以在这里找到它。(“缺点”:闪光)