将Excel导出到Asp.net,平板电脑无法打开

时间:2015-01-23 12:17:20

标签: android asp.net vb.net excel

在我的功能中,我有以下说明:

grid.DataSource = dt
        grid.DataBind()

        Response.Clear()
        Response.AddHeader("content-disposition", "attachment; filename=Soste.xls")
        Response.AddHeader("Content-Type", "application/Excel")
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
        Response.Charset = ""
        Dim stringWrite As System.IO.StringWriter = New System.IO.StringWriter
        Dim htmlWrite As New HtmlTextWriter(stringWrite)
        grid.RenderControl(htmlWrite)

        Dim html As String = stringWrite.ToString()
        Dim pattern As String = "(\p{Sc})?"
        Dim rgx As New System.Text.RegularExpressions.Regex(pattern)
        html = rgx.Replace(html, "")
        Response.Write(html)
        HttpContext.Current.Response.[End]()

网格是数据网格,我将数据发布到导出。

在PC上可以,但是当我尝试将数据导出到平板电脑(Android或苹果)时,文件无法打开。

我问:你甚至可以在手机上打开它吗?

非常感谢回应。

1 个答案:

答案 0 :(得分:0)

您的问题的一个可能的解释是您的代码实际上并不创建真正的.xls文件。相反,它会创建一个包含HTML表格的文本文件,并为该文件提供.xls扩展名:

ScreenShot.png

Excel能够打开像这样的“假”.xls文件(另一个例子是已经重命名为.xls的.csv文件),但其他平台上的文件查看器/编辑器可能不太适应。

如果您确实想要生成.xls文件,那么您应该使用创建实际.xls文件的库。这里有另一个问题的建议:

Create Excel (.XLS and .XLSX) file from C#