Открытие файлов excel из интернета открывает пустое окно excel
метод сброса GridView в файл Excel для загрузки / открытия из интернета недавно был нарушен новыми обновлениями Windows.
мой код сбрасывается из GridView в файл XLS с помощью StringWriter, HTMLTextWriter и RenderControl. Общий подход с использованием следующего кода из 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) откроется пустым окно, без предупреждения или сообщения о том, почему что-либо было заблокировано, и без возможности принять файл для открытия.
мой код запускается на сайте интрасети, и у меня есть доступ к групповым политикам / настройкам / конфигурациям пользователей в Windows.
6 ответов
Решение 1
1) открыть Excel перейти к опции файла
2) Нажмите Центр Доверия - > Настройки Центра Доверия
3) перейдите в защищенный вид. есть 3 варианта, которые показывают, что все нажал. Снимите первый вариант, который гласит: - "включить защищенный просмотр для файлов из интернета". В некоторых случаях, как сообщается в комментариях ниже, как 1-й, так и 2-й варианты должны быть сняты (спасибо @mosheb)
решение 2
удалите эти обновления Windows:
- Центр обновления Windows KB3115262 (Excel 2013)
- Центр обновления Windows KB3115130 (Excel 2010)
решение 3
- перейдите в свойства файла (R click - properties)
- Нажмите Кнопку 'Разблокировать'
- Нажмите 'Применить'
изменение параметров безопасности, к сожалению, не было вариантом, но оказывается, что если вы экспортируете в CSV вместо XLS, то файл откроется в Excel, игнорируя материал trust center.
мы находимся в классическом ASP, поэтому мы меняем страницу с экспорта формата таблицы HTML на CSV и меняем наш заголовок и contenttype на это:
Response.AddHeader "content-disposition", "attachment; filename=search_results.csv"
Response.ContentType = "text/csv"
и сделал разрывы строки с:Response.Write (chr(10))
попробуйте сделать следующее:
заменить "вложение" на
Response.AddHeader("content-disposition","attachment;filename=GridViewExport.xls")
С "inline"
Response.AddHeader("content-disposition","inline;filename=GridViewExport.xls")
Это может помочь!
Content-Disposition: каковы различия между "встроенным" и "вложением"?
просто подумал, что я упомяну, что есть третье решение:
добавить сайт генерации .xls в список надежных сайтов. Мне пришлось добавить около десятка веб-сайтов через GPO, потому что наш CIO отказывается откатить КБ... =(
имея ту же проблему. Обновление заблокировало этот экспорт в excel, и не все мои пользователи во всем мире имеют разрешения на разблокирование. Это касается 2010 и 2013 годов .формате xls. Моя мысль-обратиться к типу контента. Вы пытались переключить тип контента из application / vnd.ms-excel для приложения/vnd.openxmlformats-officedocument.spreadsheetml.лист и использование xlsx вместо этого?
