将网页作为 Excel 文件打开,但带有 .xlsx 文件

Opening a web page as an Excel file, but with .xlsx files

好的,这可能有点不寻常。如果有更好的方法来做到这一点(同样简单,我愿意接受想法)。我不久前发现我可以打开一个由 Gridview 或 table 组成的网页,带有标题等作为 excel 文件,而且效果很好!它使用与页面中的 html 相似的颜色和对齐方式格式化 Excel 文件。但是,对于 excel 的更高版本,它在打开它之前警告我格式时间无效,尽管它似乎仍然有效。所以我尝试将内容类型更改为 excel 的更新版本,但我什么也没得到。这是我一直在做的(下)。

有谁知道如何更改它以便我可以在当前版本的 Excel 中打开页面而不会收到警告?

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

    Response.AppendHeader("Content-disposition", "attachment; filename=Filename.xls")
    Response.ContentType = "application/vnd.ms-excel"


End Sub

您没有创建 Excel 文件。

您正在创建文件扩展名为 .xls 的 HTML 文件。这是 HTML 文件的错误扩展名,这就是 Excel 给您警告的原因。正确的扩展名是 .html.htm。不幸的是,.html 文件不会在 Excel 中自动打开,因此更改扩展名需要您的用户在 Excel 中手动打开文件,而不是直接双击它。

恐怕没有简单的方法可以解决这个问题。我们遇到了同样的问题,我们通过创建一个 real Excel 文件解决了这个问题。 There are lots of Excel libraries for .NET available. We used SpreadsheetLight, because it easily allows you to copy a DataTable to an Excel file and send that file to the web client.