2016-07-28 93 views
-1

我们有一个传统的ASP.NET应用程序,允许用户将GridView控件的内容导出到Excel。这是使用this technique实现的。Windows阻止.XLS文件从互联网下载内容为HTML

最近,用户抱怨说他们无法在Excel中打开其下载的文件。我自己尝试过,发现Windows阻止了下载的文件,阻止Excel打开它。

它看起来像Windows现在认为已经从网页内容创建的XLS文件可疑。这是最近的Windows更新的结果吗?而这种从网页创建Excel文件的技术不被推荐?

+0

也许? http://www.infoworld.com/article/3098898/microsoft-windows/excel-refusing-to-open-files-blame-the-kb-3115322-3115262-security-updates.html – Nikki9696

+0

@ nikki9696是的,那看起来像像问题的原因 – pmarflee

+0

这应该是一个教训:不要导出具有错误文件扩展名的数据。如果您要为用户提供Excel文件,请使用专用的库生成适当的XLSX文件。 – mason

回答

1

正确,recent updates have broken this behavior(感谢Nikki9696的文章)。

列出的有三种解决方法:

  1. 使用停止HTML文件伪装成XLS
  2. 到单个文件(客户端解决方案)
  3. 或文件的源添加到受信任位置不阻止访问Excel中的列表(客户端解决方案)

最好的办法是#1。您不应将具有一种数据类型的文件作为另一种文件类型提供。它总是对用户产生警告。许多以其他方式知道如何打开XLS文件的Office客户端(例如iPad版Office)会在呈现伪装为XLS的HTML文件时窒息。

相反,使用库来生成一个现代的XLSX文件(可以通过Office 2003和更新版本打开)。有几种解决方案,如EPPlus,NPOIOpen XML SDK

在将来,要小心使用支持的解决方案,而不是像拼凑错误的扩展文件一样拼凑黑客。

相关问题