加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 从互联网上打开excel文件会打开一个空白的Excel窗口

发布时间:2020-12-15 23:57:18 所属栏目:asp.Net 来源:网络整理
导读:最近,新的Windows更新破坏了将GridView转储到Excel文件以从Internet下载/打开的方法. 我的代码使用StringWriter,HTMLTextWriter和RenderControl从GridView转储到XLS文件.使用http://www.aspsnippets.com/Articles/Export-GridView-to-Excel-in-ASPNet-with-F
最近,新的Windows更新破坏了将GridView转储到Excel文件以从Internet下载/打开的方法.

我的代码使用StringWriter,HTMLTextWriter和RenderControl从GridView转储到XLS文件.使用http://www.aspsnippets.com/Articles/Export-GridView-to-Excel-in-ASPNet-with-Formatting-using-C-and-VBNet.aspx中的以下代码的常用方法

Protected Sub ExportToExcel(sender As Object,e As EventArgs)
    Response.Clear()
    Response.Buffer = True
    Response.AddHeader("content-disposition","attachment;filename=GridViewExport.xls")
    Response.Charset = ""
    Response.ContentType = "application/vnd.ms-excel"
    Using sw As New StringWriter()
        Dim hw As New HtmlTextWriter(sw)

        'To Export all pages
        GridView1.AllowPaging = False
        Me.BindGrid()

        GridView1.HeaderRow.BackColor = Color.White
        For Each cell As TableCell In GridView1.HeaderRow.Cells
            cell.BackColor = GridView1.HeaderStyle.BackColor
        Next
        For Each row As GridViewRow In GridView1.Rows
            row.BackColor = Color.White
            For Each cell As TableCell In row.Cells
                If row.RowIndex Mod 2 = 0 Then
                    cell.BackColor = GridView1.AlternatingRowStyle.BackColor
                Else
                    cell.BackColor = GridView1.RowStyle.BackColor
                End If
                cell.CssClass = "textmode"
            Next
        Next

        GridView1.RenderControl(hw)
        'style to format numbers to string
        Dim style As String = "<style> .textmode { } </style>"
        Response.Write(style)
        Response.Output.Write(sw.ToString())
        Response.Flush()
        Response.[End]()
    End Using
End Sub

Public Overrides Sub VerifyRenderingInServerForm(control As Control)
    ' Verifies that the control is rendered
End Sub

Excel(2013)将打开一个空白窗口,没有任何警告或消息,说明为何阻止了任何内容,并且没有接受要打开的文件的选项.

我的代码在Intranet站点上运行,我可以访问Windows中的组策略/设置/用户配置.

解决方法

解决方案1

1)打开Excel转到文件选项

2)点击信任中心 – >信任中心设置

3)转到受保护的视图.有3个选项显示全部被点击.取消选中第一个选项 – “为来自Internet的文件启用受保护的视图”.在下面的评论中报告的某些情况下,第一和第二选项都需要取消选中(谢谢@mosheb)

解决方案2

卸载这些Windows更新:

> Windows Update KB3115262(Excel 2013)> Windows Update KB3115130(Excel 2010)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读