将网页打开为Excel文件,但使用.xlsx文件

时间:2015-01-02 22:46:46

标签: asp.net excel

好的,这可能有点不寻常。如果有更好的方法来做到这一点(同样容易,我愿意接受各种想法)。我刚才发现我可以打开一个由Gridview或表组成的网页,标题等作为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

1 个答案:

答案 0 :(得分:3)

您没有创建Excel文件。

您正在创建一个文件扩展名为.xls的HTML文件。这是HTML文件的错误扩展,这就是Excel为您提供警告的原因。正确的扩展名为.html.htm。遗憾的是,.html文件无法在Excel中自动打开,因此更改扩展程序需要用户在Excel中手动打开文件,而不是双击它。

我担心没有简单的方法可以解决这个问题。我们遇到了同样的问题,我们通过创建真实的 Excel文件解决了这个问题。 There are lots of Excel libraries for .NET available.我们使用SpreadsheetLight,因为它可以让您轻松copy a DataTable to an Excel filesend that file to the web client